创建子目录,从字符串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

我该怎么做?

创建子目录,从字符串C#中设置名称

根据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

MSDN记录了可能的异常以及错误条件。

NotSupportedException

路径包含一个冒号(:(,它不是驱动器标签("C:''"(的一部分。