我有一个文件夹,其中包含子文件夹和只读属性(文件和文件夹)的文件。我想用子文件夹和文件删除此文件夹。删除c中的文件夹和子文件夹#
我写了这个代码:
static void Main(string[] args)
{
DirectoryInfo mm = new DirectoryInfo(@"c:\ex");
string aa = Convert.ToString(mm);
string[] allFileNames =
System.IO.Directory.GetFiles(aa,
"*.*",
System.IO.SearchOption.AllDirectories);
string[] alldirNames =
System.IO.Directory.GetDirectories(aa,
"*",
System.IO.SearchOption.AllDirectories);
foreach (string filename in allFileNames)
{
FileAttributes attr = File.GetAttributes(filename);
File.SetAttributes(filename, attr & ~FileAttributes.ReadOnly);
}
foreach (string dirname in alldirNames)
{
FileAttributes attr = File.GetAttributes(dirname);
File.SetAttributes(dirname, attr & ~FileAttributes.ReadOnly);
Directory.Delete(dirname , true);
}
FileInfo[] list = mm.GetFiles();
foreach (FileInfo k in list)
{
k.Delete();
}
mm.Delete();
Console.ReadKey();
}
现在的问题是,每当我运行它,它给了我下面的错误:
Could not find a part of the path 'c:\ex\xx\bb'.
这个错误是什么意思?
你为什么要转换'DirectoryInfo'为字符串?您可以直接使用['DirectoryInfo.GetFiles'](http://msdn.microsoft.com/en-us/library/ms143327.aspx)。 –
这可能意味着你试图删除某些文件或文件目录中有零个文件的文件..我会建议你做一些事情..例如..列表你应该检查list.Count> 0是否也它是在mm.Delete ..上抛出一个错误?也谷歌如何使用'DirectoryInfo'一个更重要的事情你有使用调试器步骤通过代码..?如果是这样,请报告哪一行抛出错误.. – MethodMan
看看这个链接以及如何设置FileAttributes,http://www.csharp-examples.net/file-attributes/ – MethodMan