ディレクトリの場所がありますが、どのようにすべてのディレクトリを作成できますか?例えばC:\ Match \ UploadはMatchとサブディレクトリUploadの両方を作成します(存在しない場合)。 C#3.0ディレクトリ+サブディレクトリの作成
を使用して
おかげ
ディレクトリの場所がありますが、どのようにすべてのディレクトリを作成できますか?例えばC:\ Match \ UploadはMatchとサブディレクトリUploadの両方を作成します(存在しない場合)。 C#3.0ディレクトリ+サブディレクトリの作成
を使用して
おかげ
Directory.CreateDirectory( "C:\マッチ\アップロード" @)があなたのためにこれすべてを整理します。すべてのサブディレクトリを作成する必要はありません!ディレクトリ作成メソッドは、すべてのディレクトリとサブディレクトリを作成します。
のGooglerのためif (!System.IO.Directory.Exists(@"C:\Match\Upload"))
{
System.IO.Directory.CreateDirectory(@"C:\Match\Upload");
}
ディレクトリかもしれませんifには存在しませんが、そのメソッドで作成しようとしている間はまだ存在しています。存在を気にしないで、代わりにキャッチを使用してください。 –
実際にCreateDirectoryを呼び出すことは、ディレクトリが存在しても失敗しないので、それを使用することは冗長です。 – RichardOD
:
var path = @"C:\Foo\Bar";
new System.IO.DirectoryInfo(path).Create();
呼び出し:純粋なWin32の/ C++で、ここで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
}
を使用するには、ディレクトリとすべてのサブディレクトリを作成しますDirectoryInfo
対象と例です。 Create()
は、パスがすでに存在する場合はエラーになりません。
それはあなたが行うことができますファイルパスの場合:
var path = @"C:\Foo\Bar\jazzhands.txt";
new System.IO.FileInfo(path).Directory.Create();
リファレンスhttps://msdn.microsoft.com/en-us/library/system.io.directory.createdirectory.aspx –