Può capitare di avere la necessità di lavorare con un file temporaneo. Esistono due funzioni nel namespace System.IO che possono fare al caso nostro: System.IO.Path.GetRandomFileName e System.IO.Path.GetTempFileName.
Una differenza sostanziale tra le due funzioni è che GetTempFileName genera sempre un file su disco, mentre GetRandomFileName genera solo una stringa che potrà essere utilizzata come nome di file o cartella.
Ecco una breve descrizione delle due funzioni presa dal sito Microsoft MSDN:
GetTempFileName
Crea un file temporaneo a zero byte con nome univoco sul disco e restituisce il percorso intero di quel file.
Questo metodo crea un file temporaneo con estensione .TMP.
Il metodo GetTempFileName genererà un'eccezione IOException se viene utilizzato per creare più di 65535 file senza eliminare i precedenti file temporanei.
Se non è disponibile alcun nome univoco del file temporaneo, il metodo GetTempFileName genererà un'eccezione IOException. Per risolvere l'errore, eliminare tutti i file temporanei non necessari.
GetRandomFileName
Restituisce un nome casuale di cartella o di file.
Il metodo GetRandomFileName restituisce una stringa casuale e resistente a da un punto di vista crittografico che è possibile utilizzare sia come nome di cartella che di file.
A differenza del metodo GetTempFileName, il metodo GetRandomFileName non crea un file. Se la sicurezza del file system è di primaria importanza, utilizzare questo metodo invece di GetTempFileName.
Visual Basic 6
Una nota per gli utilizzatori di Visual Basic 6: per ottenere il nome di un file temporaneo bisogna ricorrere alle API.
Qui di seguito la dichiarazione della stessa.
Declare Function GetTempFileName Lib "kernel32" Alias "GetTempFileNameA" (ByVal lpszPath As String, ByVal lpPrefixString As String, ByVal wUnique As Long, ByVal lpTempFileName As String) As Long
Una differenza sostanziale tra le due funzioni è che GetTempFileName genera sempre un file su disco, mentre GetRandomFileName genera solo una stringa che potrà essere utilizzata come nome di file o cartella.
Ecco una breve descrizione delle due funzioni presa dal sito Microsoft MSDN:
GetTempFileName
Crea un file temporaneo a zero byte con nome univoco sul disco e restituisce il percorso intero di quel file.
Questo metodo crea un file temporaneo con estensione .TMP.
Il metodo GetTempFileName genererà un'eccezione IOException se viene utilizzato per creare più di 65535 file senza eliminare i precedenti file temporanei.
Se non è disponibile alcun nome univoco del file temporaneo, il metodo GetTempFileName genererà un'eccezione IOException. Per risolvere l'errore, eliminare tutti i file temporanei non necessari.
GetRandomFileName
Restituisce un nome casuale di cartella o di file.
Il metodo GetRandomFileName restituisce una stringa casuale e resistente a da un punto di vista crittografico che è possibile utilizzare sia come nome di cartella che di file.
A differenza del metodo GetTempFileName, il metodo GetRandomFileName non crea un file. Se la sicurezza del file system è di primaria importanza, utilizzare questo metodo invece di GetTempFileName.
Visual Basic 6
Una nota per gli utilizzatori di Visual Basic 6: per ottenere il nome di un file temporaneo bisogna ricorrere alle API.
Qui di seguito la dichiarazione della stessa.
Declare Function GetTempFileName Lib "kernel32" Alias "GetTempFileNameA" (ByVal lpszPath As String, ByVal lpPrefixString As String, ByVal wUnique As Long, ByVal lpTempFileName As String) As Long