我有一個文件夾,其中包含子文件夾和只讀屬性(文件和文件夾)的文件。我想用子文件夾和文件刪除此文件夾。刪除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