第二个路径片段不能是驱动器或UNC名称 - 创建子目录错误

Sab*_*deH 9 .net c# directory directoryinfo subdirectory

我在这段代码的第三行有一个例外"第二个路径片段不能是驱动器或UNC名称"

DirectoryInfo labdi = new DirectoryInfo(Back.mainfolderpath + @"\news\l");
DirectoryInfo tld = new DirectoryInfo(labdi.FullName + @"\" + NorA.sn.labl[i]);
tld = labdi.CreateSubdirectory(labdi.FullName + @"\" + NorA.sn.labl[i] + @"\");
Run Code Online (Sandbox Code Playgroud)

网上没有有用的方法.谢谢.:!

Gay*_*Fow 13

我今天碰到了这个,最后跟踪了它.

例外情况是试图告诉您,当DirectoryInfo将路径作为参数(例如,CreateSubdirectory或GetFiles)时,如果path参数包含Root并抛出此难以捉摸的异常,它将反对.

所以包含"C:\"或"D:\"等的路径参数不起作用.有了这个上下文,异常消息实际上有点意义.

在您的代码中,您使用的是FullName属性,此字符串包含"C:\"或根目录.

鉴于问题的年龄,我应该添加c#,.NET 4.5,VS2013.

  • 这描述了为什么它不起作用,但是解决方案是什么? (7认同)

Kel*_*arp 6

解决此问题的最简单方法是使用Directory和File方法的静态版本。您不必通过这种方式删除根。您也不需要DirectoryInfo或FileInfo对象,它们使您头痛

string someFile = @"C:\somefolder\somefile.txt";
string directory = Path.GetDirectoryName(someFile);

foreach(var file in Directory.GetFiles(directory))
{
   File.Delete(file);
}
Run Code Online (Sandbox Code Playgroud)