Ho una posizione di directory, come posso creare tutte le directory? per esempio. C: \ Match \ Upload creerà sia la corrispondenza che il caricamento della sottodirectory se non esiste.Crea directory + sottodirectory
con C# 3.0
Grazie
Ho una posizione di directory, come posso creare tutte le directory? per esempio. C: \ Match \ Upload creerà sia la corrispondenza che il caricamento della sottodirectory se non esiste.Crea directory + sottodirectory
con C# 3.0
Grazie
Directory.CreateDirectory (@ "C: \ Partita \ Upload") sarà ordinare tutto questo per voi. Non è necessario creare tutte le sottodirectory! Il metodo di creazione directory crea tutte le directory e sottodirectory per te.
if (!System.IO.Directory.Exists(@"C:\Match\Upload"))
{
System.IO.Directory.CreateDirectory(@"C:\Match\Upload");
}
La directory può non esiste al se ma esiste ancora durante il tentativo di creazione con quel metodo. Non preoccuparti dell'esistenza e usa invece una presa. –
Effettivamente la chiamata a CreateDirectory non avrà esito negativo anche se la directory esiste, quindi utilizzarla è ridondante. – RichardOD
per Googler: in puro Win32/C++, utilizzare SHCreateDirectoryEx
inline void EnsureDirExists(const std::wstring& fullDirPath)
{
HWND hwnd = NULL;
const SECURITY_ATTRIBUTES *psa = NULL;
int retval = SHCreateDirectoryEx(hwnd, fullDirPath.c_str(), psa);
if (retval == ERROR_SUCCESS || retval == ERROR_FILE_EXISTS || retval == ERROR_ALREADY_EXISTS)
return; //success
throw boost::str(boost::wformat(L"Error accessing directory path: %1%; win32 error code: %2%")
% fullDirPath
% boost::lexical_cast<std::wstring>(retval));
//TODO *djg* must do error handling here, this can fail for permissions and that sort of thing
}
Ecco un esempio con un oggetto DirectoryInfo
che creerà la directory e tutte le sottodirectory:
var path = @"C:\Foo\Bar";
new System.IO.DirectoryInfo(path).Create();
Calling Create()
non errore se il percorso esiste già.
Se si tratta di un percorso di file si può fare:
var path = @"C:\Foo\Bar\jazzhands.txt";
new System.IO.FileInfo(path).Directory.Create();
Riferimento https://msdn.microsoft.com/en-us/library/system.io.directory.createdirectory.aspx –