c# - 如果文件夹不存在,如何创建文件和任何文件夹?

标签 c# .net file-access

假设我希望创建(或覆盖)以下文件:- C:\Temp\Bar\Foo\Test.txt

使用 File.Create(..)方法,这个可以做到。

但是,如果我没有以下任一文件夹(来自上面的示例路径)

  • 温度
  • 酒吧

然后我得到一个 DirectoryNotFoundException抛出。

那么 .. 给定一个路径,我们如何递归地创建创建文件所需的所有文件夹......为该路径?如果 Temp 或 Bar 文件夹存在,但 Foo 不存在.. . 然后也创建了。

为简单起见,我们假设没有安全问题——所有权限都很好,等等。

最佳答案

总结其他答案中评论的内容:

//path = @"C:\Temp\Bar\Foo\Test.txt";
Directory.CreateDirectory(Path.GetDirectoryName(path));

Directory.CreateDirectory 将递归地创建目录,如果目录已经存在,它将无错误地返回。

如果 C:\Temp\Bar\Foo 恰好有文件 Foo 将抛出异常。

关于c# - 如果文件夹不存在,如何创建文件和任何文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3201598/

相关文章:

c++:更多的小文件还是更少的大文件?

C# 文件访问错误

c - 如何阻止同一进程中的其他函数访问文件?

c# - 获取 IIS 设置

c# - 为什么 Application.Exit 无法工作?

c# - 统一错误 : InitWWW can only be called from the main thread

c# - 缓存反射数据

c# - 代码优先,当我启用迁移时,我得到 “No context type was found in the assembly ' DOC'”

c# - VSTest-testAssemblies 代理未在 Azure Pipelines 中运行 NUnit 框架的类别搜索筛选器

c# - 无法解决 dll 之间的冲突