保存文件并自动创建目录

24

我正在将一些变量连接在一起,并希望将该字符串保存为文件路径。

是否有一种方法可以自动创建所有适当的目录,而无需在每个目录上检查“是否存在”?

例如。

"C:\" + a + "\" + b+ "\" + d + "\" + d + ".txt"

可能是重复的问题:如果文件夹不存在,则创建它 - Michael Freidgeim
2个回答

71

使用 new FileInfo(path).Directory.Create()

(这将创建所需的任何层级结构。如果目录已存在,则不会执行任何操作。)


由于您无法确定是否能找到路径的FileInfo,因此我建议添加一个条件访问:new FileInfo(destFileName).Directory?.Create(); - DaveM
1
@DaveM:你能举个例子,说明 FileInfo.Directory 会返回 null 吗?我不确定你所说的“不能确定是否能找到路径的 FileInfo”,但在某些失败情况下,会抛出异常而不是返回 null - 我没有看到任何文档说明会返回 null 的情况。 - Jon Skeet
是的,你说得完全正确。抱歉我在这里犯了一个错误。正如你所提到的文档所说:当指定的路径无效(例如在未映射的驱动器上)时,会出现“DirectoryNotFoundException”异常。似乎不存在FileInfo.Directory返回null的情况。 - DaveM

15
使用 System.IO 命名空间,创建目录 c:\temp\a\b\c\d\e。

1
不要忘记加上 if (Directory.Exists(...)) 的检查。 - ProfK
7
无需检查目录是否存在,Directory.CreateDirectory() 已经包含了这个功能。 - forcewill

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接