【问题标题】:Saving a file and automatically create directories保存文件并自动创建目录
【发布时间】:2010-10-14 05:25:01
【问题描述】:

我正在连接多个变量,我想将该字符串保存为文件路径。

有没有一种方法,如果它们不存在,它会自动创建所有适当的目录,而不必检查每个目录的“是否存在”

例如。

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

【问题讨论】:

标签: c# winforms file


【解决方案1】:

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

(这会在层次结构中创建所需的任何内容。如果目录已经存在,则什么也不做。)

【讨论】:

  • 因为你不能确定找到路径的 FileInfo 我会添加一个条件访问:new FileInfo(destFileName).Directory?.Create();
  • @DaveM:你能举个例子,FileInfo.Directory 会返回 null 吗?我不确定“无法确定为路径找到 FileInfo”是什么意思,但至少在某些失败情况下,会抛出异常而不是返回 null - 我看不到任何案例文档这将返回 null。
  • 是的,你绝对正确。对不起,我在这里犯了一个错误。正如您提到的,文档说:DirectoryNotFoundException ...当指定的路径无效时,例如位于未映射的驱动器上。好像没有FileInfo.Directory会返回null的情况
【解决方案2】:
using System.IO; .... Directory.CreateDirectory(@"c:\temp\a\b\c\d\e");

【讨论】:

  • 不要忘记 if (Directory.Exists(...) 检查。
  • @ProfK 不需要检查目录是否存在,Directory.CreateDirectory() 已经这样做了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-27
  • 1970-01-01
  • 1970-01-01
  • 2022-11-23
  • 1970-01-01
相关资源
最近更新 更多