我正在使用基于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”,则只会将其删除。有没有办法让它适用于所有用户名?另外我注意到这不会删除此文件夹中的所有内容,有没有办法强制删除或不是推荐的?
答案 0 :(得分: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();
}