0

私は Gecko ベースの Web ブラウザを使用していますが、終了時に AppData\Local\Geckofx\ を削除したいと考えています。

私は現在このコードを使用しています:

    protected override void OnFormClosing(FormClosingEventArgs e)
    {
        try
        {
            var dir = new DirectoryInfo(@"C:\Users\Admin\AppData\Local\Geckofx\");
            dir.Attributes = dir.Attributes & ~FileAttributes.ReadOnly;
            dir.Delete(true);
        }
        catch
        { }
    }

もちろん、これはユーザーの名前が「Admin」の場合にのみ削除されます。すべてのユーザー名で機能させる方法はありますか? さらに、これでこのフォルダー内のすべてが削除されるわけではないことに気付きました。強制的に削除する方法はありますか、それとも推奨されませんか?

4

1 に答える 1

1

フォルダ内のすべてのファイルとフォルダを削除するには ; このコードを使用してください:

foreach (FileInfo file in TheDirectory.GetFiles())
{
   file.Delete(); 
}
foreach (DirectoryInfo dir in TheDirectory.GetDirectories())
{
   dir.Delete(true); 
}

別のstackoverflowスレッドで、読み取り専用ファイルを削除するこのコードを見つけました:

private static void DeleteFileSystemInfo(FileSystemInfo fsi)
{
fsi.Attributes = FileAttributes.Normal;
var di = fsi as DirectoryInfo;

if (di != null)
{
    foreach (var dirInfo in di.GetFileSystemInfos())
    {
        DeleteFileSystemInfo(dirInfo);
    }
}

fsi.Delete();
}
于 2013-08-10T12:20:00.160 に答える