创建子目录,从字符串C#中设置名称
本文关键字:设置 字符串 子目录 创建 | 更新日期: 2023-09-27 18:09:36
我想知道如何创建一个文件夹,并且文件夹的名称是字符串中的值。
这个
string[] directories = Directory.GetDirectories(filePath2);
foreach (string directory in directories)
{
Directory.CreateDirectory(filePath + directory);
}
或者这个
string[] directories = Directory.GetDirectories(filePath2);
foreach (string directory in directories)
{
Directory.CreateDirectory(filePath + @"/"+directory+"/");
}
抛出NotSupportedException
我该怎么做?
根据MSDN上的文档(http://msdn.microsoft.com/en-us/library/54a0at6s(v=vs.110(.aspx(当">路径包含不是驱动器标签("C:''"(一部分的冒号(:(时,会引发NotSupportedException
。"检查字符串的内容。
在这方面也要记住:
- 将创建路径中指定的任何和所有目录,除非它们已经存在,或者除非路径的某些部分无效
- 如果目录已经存在,则此方法不会创建新的目录,但它返回现有目录的DirectoryInfo对象目录
- path参数指定的是目录路径,而不是文件路径
- 路径参数末尾的尾随空格在创建目录
- 您可以在远程计算机上创建一个目录具有对的写访问权限。支持UNC路径;例如,您可以在Visual中为路径指定以下内容:''2009''Archives''DecemberBasic和''''2009/Archives''December
- 创建仅包含冒号(:(的目录不是支持,并将引发NotSupportedException
问题:如果我理解正确,您希望在给定的路径下创建目录。
正如其他人已经指出的,当有一个冒号:
不是驱动器号的一部分时,它抛出NotSupportedException
。
来自MSDN:NotSupportedException
路径包含冒号(:(,该字符不是驱动器标签的一部分("C:''"(。
如果要在给定路径下创建directory
,则需要从directory
变量中仅提取directory
名称(不包括驱动器路径(,该变量包含整个目录路径,包括不需要的驱动器路径。
解决方案:您只需要从directory
变量中提取DirectoryName
,该变量包含整个目录路径(其中还包括驱动器路径,这会导致异常(
试试这个:
foreach (string directory in directories)
{
Directory.CreateDirectory(filePath + @"/" +
directory.Substring(directory.LastIndexOf("''")) + "/");
}
如文档所示
NotSupportedException:路径包含一个冒号(:(,它不是驱动器标签("C:''"(的一部分。
看一看http://msdn.microsoft.com/en-us/library/9h4z99zb(v=vs.110(.aspx
NotSupportedException
路径包含一个冒号(:(,它不是驱动器标签("C:''"(的一部分。