如何删除整个文件夹及其所有内容,包括只读文件

Nig*_*Vil 1 .net c# file-io

我目前使用此代码删除文件夹及其内容:

string tempFolder = System.Environment.GetEnvironmentVariable("HomeDrive");
System.IO.Directory.Delete(tempFolder + "\\" + "Test", true);
Run Code Online (Sandbox Code Playgroud)

它工作得很好,但它会删除文件夹及其内容,但不会删除只读文件.那么如何使用c#有针对性的Framework 2.0来完成这个呢?

小智 5

您可以使用以下代码从文件中删除只读属性:

string[] allFileNames = System.IO.Directory.GetFiles(tempFolder, "*.*", System.IO.SearchOption.AllDirectories);
foreach (string filename in allFileNames) {
    FileAttributes attr = File.GetAttributes(filename);
    File.SetAttributes(filename, attr & ~FileAttributes.ReadOnly);
}
Run Code Online (Sandbox Code Playgroud)