0

我正在开发基于 Gecko 的网络浏览器,我希望它在退出时删除 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 回答