Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在我创建文件之前,确保文件夹存在的最简单方法是什么?_C#_File_Io_Directory - Fatal编程技术网

C# 在我创建文件之前,确保文件夹存在的最简单方法是什么?

C# 在我创建文件之前,确保文件夹存在的最简单方法是什么?,c#,file,io,directory,C#,File,Io,Directory,我有一个文件夹结构: C:\Temp[完全为空] 我有一个文件要移到 C:\Temp\Folder1\MyFile.txt 如果我执行File.Move,我将得到一个错误,说明此文件夹不存在 是否有任何C#方法可以创建到该点的所有文件夹,以便: C:\Temp\Folder1\ ? 有关更多信息,请参阅 创建一个不存在的目录 Directory.CreateDirectory("path of dir"); 它将创建所有目录和子目录,请参见使用 附加说明:您不必首先检查它是否存在。不管怎样,C

我有一个文件夹结构:

C:\Temp[完全为空]

我有一个文件要移到

C:\Temp\Folder1\MyFile.txt

如果我执行File.Move,我将得到一个错误,说明此文件夹不存在

是否有任何C#方法可以创建到该点的所有文件夹,以便:

C:\Temp\Folder1\

?

有关更多信息,请参阅

创建一个不存在的目录

Directory.CreateDirectory("path of dir");
它将创建所有目录和子目录,请参见使用


附加说明:您不必首先检查它是否存在。不管怎样,CreateDirectory都会做正确的事情。

您可以使用
目录。CreateDirectory()
来实现这一点。显然,它会在路径中创建所有目录


请记住,在创建目录和移动文件之间,可能有人删除了该目录。因此,当您尝试移动文件时,无法绝对确定目录是否确实存在。一个可能的例外是使用。

你关于不能绝对确定的评论是错误的。在对文件夹执行任何操作之前,可以清楚地检查它是否存在。考虑到应用程序的运行速度快于用户删除文件夹的速度,并且如果您始终检查文件夹是否存在,则文件夹将始终存在。从技术上讲,他是正确的,检查和移动之间存在竞争条件。实际上,在我的应用程序中,我不会担心这一点,因为这几乎是不可能遇到的。@Rahmound,如果另一个不是人类,而是其他应用程序呢?例如,定期清理临时目录的文件?您不应该在临时目录中存储数据。最好使用用户的一些AppData文件夹。
Directory.CreateDirectory("path of dir");