Подтвердить что ты не робот

Создание каталогов + подкаталогов

У меня есть каталог, как я могу создать все каталоги? например C:\Match\Upload создаст как Матч, так и загрузку подкаталога, если он не существует.

Использование С# 3.0

Спасибо

4b9b3361

Ответ 1

Directory.CreateDirectory (@ "C:\Match\Upload" ) будет сортировать все это для вас. Вам не нужно создавать все подкаталоги! Метод create directory создает для вас все каталоги и подкаталоги.

Ответ 2

if (!System.IO.Directory.Exists(@"C:\Match\Upload"))
{
  System.IO.Directory.CreateDirectory(@"C:\Match\Upload");
}

Ответ 3

для googlers: в ​​чистом win32/С++ используйте 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
}

Ответ 4

Вот пример с объектом DirectoryInfo, который создаст каталог и все подкаталоги:

var path = @"C:\Foo\Bar";
new System.IO.DirectoryInfo(path).Create();

Вызов Create() не будет ошибкой, если путь уже существует.

Если это путь к файлу, вы можете сделать:

var path = @"C:\Foo\Bar\jazzhands.txt";
new System.IO.FileInfo(path).Directory.Create();