什么是在我执行File.Move之前确保文件夹存在的最简单方法?

Exi*_*tos 31 c# directory io file

我有一个文件夹结构:

C:\ Temp [完全空]

我有一个我想要移动的文件

C:\ TEMP\Folder1中\ MyFile.txt的

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

是否有任何C#方法将创建到目前为止的所有文件夹,因此:

C:\ TEMP\Folder1中\

alu*_*lun 64

使用System.IO.Directory.CreateDirectory

附加说明:您不必先检查它是否存在.无论如何,CreateDirectory都会做正确的事情.


Ton*_*ion 9

If Directory.Exists("somedir")
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参见此处

如果目录不存在,则创建目录

Directory.CreateDirectory("path of dir");
Run Code Online (Sandbox Code Playgroud)

它将创建所有目录和子目录,请参见此处


svi*_*ick 5

你可以用Directory.CreateDirectory()它。显然,它创建了路径中的所有目录。

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

  • @Rahmound,如果另一个不是人类,而是其他应用程序怎么办?例如,定期清理 Temp 目录? (9认同)
  • 从技术上讲,他是正确的,检查和移动之间存在竞争条件。实际上,我在应用程序中不会担心这种情况,因为它几乎不可能遇到。 (7认同)