-2

Visual Studio 2010 C# を使用します。Microsoft ではなく、自分のソフトウェアによって配置されたC:/Windows/MyFolderAフォルダーを削除しようとしています。MyFolderA

このコードを使用して、フォルダーの内容とフォルダー自体を削除しました。

foreach (FileInfo tempfi in listOfMSIInstallers)
{
    //Delete all Files
    DirectoryInfo localDirectoryInfo = new DirectoryInfo(targetDirectory);
    FileInfo[] listOfMSIInstallers = localDirectoryInfo.GetFiles("*",SearchOption.AllDirectories);
    File.SetAttributes(tempfi.FullName, File.GetAttributes(tempfi.FullName) & ~FileAttributes.ReadOnly); //Remove Read-Only
    File.Delete(tempfi.FullName); //Delete File

    string parentFolderPath = "C:/Windows/MyFolderA"; //Example string for StackOverflow

    //Remove ReadOnly attribute and delete folder
    var di = new DirectoryInfo(parentFolderPath);
    di.Attributes &= ~FileAttributes.ReadOnly;
    Directory.Delete(parentFolderPath);
}

フォルダーを削除しようとすると、例外が発生します

「System.IO.IOException: ディレクトリが空ではありません」.

GUI に非表示のファイルを表示しています。何も表示されません。コマンド プロンプトでフォルダを見ると、2 つのディレクトリがあるように見えます。1 つは という名前です。2番目の名前は..(コマンドプロンプトdirにあまり慣れていないので、それらが一時的な名前なのか、実際のディレクトリ名なのかわかりません)0ファイルと0バイトの両方です。

オブジェクトを見てデバッグするとFileInfo[]、コマンド プロンプトから見つかった非表示のファイルが取得されません。

ファイル/ディレクトリを削除する方法はありますか?

4

1 に答える 1

3

試す

Directory.Delete(parentFolderPath, true);
于 2013-01-04T21:50:04.523 に答える