我想创建这样一个简单的目录树,虽然它并不需要具有相同的名称我可以在同一时间创建2个子目录C#吗?
我是否需要写这样的:
Directory.CreateDirectory("/home/XXX/Documents/Users/Pepe/datos/");
Directory.CreateDirectory("/home/XXX/Documents/Users/Juan");
有没有在同一个字符串路径中创建“Pepe”和“Juan”的选项?
我想创建这样一个简单的目录树,虽然它并不需要具有相同的名称我可以在同一时间创建2个子目录C#吗?
我是否需要写这样的:
Directory.CreateDirectory("/home/XXX/Documents/Users/Pepe/datos/");
Directory.CreateDirectory("/home/XXX/Documents/Users/Juan");
有没有在同一个字符串路径中创建“Pepe”和“Juan”的选项?
不,没有什么可以烧制BCL来做到这一点;你必须给每个人打电话CreateDirectory
。
如果你的目录路径集合,你可以把一个循环中:
foreach (string dirPath in directoryPaths)
{
Directory.CreateDirectory(dirPath);
}
要发布一个答案,并提供替代方案,如果你只是想有CreateDirectory
方法的一个用法,然后你可以有一个方法,该方法使用参数params string[]
,并在调用方法时传入目录。
的代码看起来像这样
private static void CreateDirectories(params string[] directories)
{
foreach (string directory in directories)
{
Directory.CreateDirectory(directory);
}
}
您可以
CreateDirectories("/home/XXX/Documents/Users/Pepe/datos/", "/home/XXX/Documents/Users/Juan");
打电话,或者你可以在一个字符串数组传递
CreateDirectories(new [] { "/home/XXX/Documents/Users/Pepe/datos/", "/home/XXX/Documents/Users/Juan"});
我降低的使用System.IO
方法做上述,然后我接口的类允许我创建嘲笑,然后ü nit测试我创建的软件,而不执行I/O操作,这会带来一种场景,您可以使用上述场景,除非它不是静态的。
这听起来像你有一个共同的根目录:
/home/XXX/Documents/Users
,你想从那里添加子目录。如果是这样的话,如果我们的目标是只需要引用子目录,然后我会@ ColinM的办法去,但如下略有修改:
private static void CreateDirectories(string directoryRoot, params string[] directories)
{
foreach (string directory in directories)
{
Directory.CreateDirectory(Path.Combine(directoryRoot, directory));
}
}
现在,当你调用它,你只需要提根一次
CreateDirectories("/home/XXX/Documents/Users", "Pepe/datos/", "Juan");
的好处约Path.Combine
是,你不必担心有一个斜线/
即无论是在directoryRoot
尾随或领导在任何directories
--IT的将确保最终格式正确。当然,如果你采用这种方法,你需要决定如果directories
为空会发生什么 - 你是否创建了directoryRoot(假设它还没有),你会抛出一个错误还是做你只是回来?
你可以创建like。
System.IO.Directory。CreateDirectory( “C:/方向1 /方向2/DIR3”);
认为在c:盘根处没有Dir1。
它会像Dir1 - > Dir2 - > Dir3一样创建文件夹结构。
如果Die1在那里,那么它将创建其余的子目录。
相同的多个级别。
不是。但是,您拥有它的方式有什么问题? –
每次需要创建目录时,您都必须使用CreateDirectory方法。它不是过度设计的,这有什么问题? – LONG
如果这样做不方便,则创建一个静态方法,将一组目录作为一个字符串接受,并将其作为一种便利方法使用。即。 'public static void CreateDirs(params string [] dirPaths){/ *循环数组并创建目录* /}' – Igor