只是一个简单的问题。我使用的是这样的FileStream和创建文件夹
FileStream fs = new FileStream(fileName, FileMode.Create);
我想知道是否有一个参数,我可以传递给它,迫使它来创建文件夹,如果它不存在。此时如果找不到文件夹,则抛出异常。
如果有更好的方法,然后使用FileStream
我愿意接受。
只是一个简单的问题。我使用的是这样的FileStream和创建文件夹
FileStream fs = new FileStream(fileName, FileMode.Create);
我想知道是否有一个参数,我可以传递给它,迫使它来创建文件夹,如果它不存在。此时如果找不到文件夹,则抛出异常。
如果有更好的方法,然后使用FileStream
我愿意接受。
Directory.CreateDirectory方法(String)
将创建一个由路径指定的所有目录和子目录。
实施例:
string fileName = @"C:\Users\SomeUser\My Documents\Foo\Bar\Baz\text1.txt";
Directory.CreateDirectory(Path.GetDirectoryName(fileName));
using (FileStream fs = new FileStream(fileName, FileMode.Create))
{
// ...
}
(Path.GetDirectoryName文件名的目录部分返回。)
是这样的:
void EnsureFolder(string path)
{
string directoryName = Path.GetDirectoryName(path);
if ((directoryName.Length > 0) && (!Directory.Exists(directoryName)))
{
Directory.CreateDirectory(directoryName);
}
}
这是为什么这么少upvoted,它检查和创建文件夹的好方法。 – 2015-06-01 11:14:53
@ChaitanyaGadkari可能是因为如果目录已经存在,Directory.CreateDirectory不会引发异常;所以对于大多数面临类似问题的人来说,dtb的答案是简洁的。 – nullable 2017-05-25 09:51:28
说我有/ folder1中/文件夹2/folder3/folder4/file.txt作为文件名和folder1不存在。上面将创建所有4个文件夹。 – 2010-09-12 14:29:15
@Ash Burlaczenko:我刚测试过它,是的,它的确如此。 – dtb 2010-09-12 14:30:24
如果该文件夹已存在并且您运行了该行,将会发生什么 – 2010-09-12 14:37:49