自动在C#目录中创建文件夹

7

我需要一个脚本,可以自动创建子文件夹。

例如:

我有一个存储在c:/upload的基础文件夹。我传输到脚本文件夹字符串:/2011/23/12/3。脚本应解析此字符串并创建文件夹和子文件夹,就像字符串一样(应该是c:/upload/2011/23/12/3

我该如何做到这一点?

现在我使用if/else检查文件夹/子文件夹是否存在,但是脚本太大了,很难管理。


最后一个文件夹是什么?我指的是第三个。看起来你基本上使用c:\upload\yyyy\MM\dd。 - Oskar Kjellin
3个回答

18

你是否看过Directory.CreateDirectory,它可以在创建路径时自动创建任何缺失的目录?

根据文档所述:

除非路径中的某些部分无效或已经存在所有指定的目录,否则将创建路径中的所有目录。


所有在路径中不存在的目录都将被创建吗?例如,使用Directory.CreateDirectory("c:/upload/2011/23/12/3")函数将创建不存在的23、12和3目录吗? - Evgeniy Labunskiy
就像测试一样简单 :) - Oscar Mederos
@evgeniy:是的。阅读我提供的文档:“除非路径中已经存在某些部分或路径的某些部分无效,否则将创建指定路径中的所有目录。” - Jon Skeet
真的,我不知道这是如此简单:))) - Evgeniy Labunskiy

6
您创建递归目录的代码将非常简单,如下所示:

Directory.CreateDirectory(path)

@Oskar Kjellin:我之前没有注意到asp.net-mvc标签。然而,执行此操作的方法调用保持不变。 - Aamir
确实是这样。这基本上也是@Jon写的。我只反对创建控制台应用程序。 - Oskar Kjellin
2
请在发布代码之前至少进行测试。哪里有接收bool的重载函数? - Oscar Mederos
1
真糟糕。又是两次连续的失误:(。这就是当你回答一个已经被@Jon Skeet回答过的问题时会发生的事情。 - Aamir

1

在C#中,您可以使用Directory.CreateDirectory来创建目录。


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