我在此代码的第三行有一个例外“第二个路径片段不能是驱动器或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] + @"\");
网上没有有用的方法。 谢谢。:!
答案 0 :(得分:13)
我今天碰到了这个,最后跟踪了它。
该异常试图告诉您,当DirectoryInfo将路径作为参数(例如,CreateSubdirectory或GetFiles)时,如果path参数包含Root并且抛出这个难以捉摸的异常,它将反对。
所以路径参数包含" C:\"或者" D:\"等不起作用。有了这个上下文,异常消息实际上有点意义。
在您的代码中,您使用的是FullName属性,此字符串包含" C:\"或根本不是什么。
考虑到问题的年龄,我应该添加c#,.NET 4.5,VS2013。
答案 1 :(得分:5)
解决此问题的最简单方法是使用Directory和File方法的静态版本。您不必以这种方式删除root。您也不需要DirectoryInfo或FileInfo对象,它们让您头疼
string someFile = @"C:\somefolder\somefile.txt";
string directory = Path.GetDirectoryName(someFile);
foreach(var file in Directory.GetFiles(directory))
{
File.Delete(file);
}
答案 2 :(得分:1)
解决办法是不要把完整的文件路径放在参数中。
你已经有父目录的路径作为对象,所以你只需要列出新的目录名称作为参数。
tld = labdi.CreateSubdirectory(NorA.sn.labl[i]);