假设我希望创建(或覆盖)以下文件:-C:\Temp\Bar\Foo\Test.txt
使用File.Create(..)方法,可以做到这一点。
但是,如果我没有以下文件夹之一(从上面的示例路径)
- 温度
- 酒吧
- 富
然后抛出一个DirectoryNotFoundException。
那么..**给定一个路径,我们如何递归地创建所有必要的文件夹来创建文件..对于该路径?**如果Temp或Bar文件夹存在,但Foo不存在...那么也会创建。
为了简单起见,我们假设没有安全问题--所有权限都很好,等等。
9条答案
按热度按时间h4cxqtbf1#
总结其他答复中的评论意见:
Directory.CreateDirectory
将递归地创建目录,如果目录已经存在,它将返回而不出错。如果在
C:\Temp\Bar\Foo
处碰巧存在文件Foo
,则将抛出异常。9cbw7uwe2#
参见this MSDN page。
bmp9r5qi3#
在创建文件之前使用Directory.CreateDirectory,它会递归地创建文件夹。
o8x7eapl4#
.给定一个路径,我们如何递归创建创建该路径的文件所需的所有文件夹
创建由path指定的所有目录和子目录。
那么您可以创建一个文件。
3npbholx5#
您需要检查路径的两个部分(目录和文件名),如果不存在,则创建每个部分。
使用
File.Exists
和Directory.Exists
来确定它们是否存在。Directory.CreateDirectory
将为您创建整个路径,因此如果目录不存在,您只需要调用一次,然后简单地创建文件。lzfw57am6#
您应该使用目录。创建目录。
http://msdn.microsoft.com/en-us/library/54a0at6s.aspx
jk9hmnmh7#
假设您的程序集/exe本身具有FileIO权限,这是不正确的。您的应用程序可能无法以管理员权限运行。考虑Code Access Security和requestingpermissions非常重要示例代码:
Understanding .NET Code Access Security
Is “Code Access Security” of any real world use?
t5fffqht8#
您需要目录。CreateDirectory()
下面是我使用的一个类(转换成C#),如果你传递给它一个源目录和一个目标目录,它会把那个目录下的所有文件和子文件夹复制到你的目标目录:
}
9rygscc19#
下面的代码将创建目录(如果不存在)&然后复制文件。