一時ファイル、プリフェッチデータ、最近のフォルダ内のファイルなどを削除できるソフトウェアを書いています。私の問題は、Tempフォルダーからファイルを正常に削除できることですが、Recentフォルダーを試してみると、「パスへのアクセスが拒否されました」という例外がスローされます。PS:他のいくつかの質問によると、ファイル属性を通常に設定しましたが、それでもうまくいきません。この問題について私を助けてください。理解を深めるために、ここにいくつかのコードを配置します。
public Boolean CleanRecentData()
{
isAllClean = true;
String SysRecentPath = System.Environment.GetEnvironmentVariable("USERPROFILE") + "\\Recent";
DirectoryInfo SysRecDir = new DirectoryInfo(SysRecentPath);
File.SetAttributes(SysRecentPath, FileAttributes.Normal);
foreach (FileInfo fi in SysRecDir.GetFiles()) //Access Denied
//Exception is thrown here
{
try
{
fi.Delete();
}
catch (Exception ex)
{
recentLogLines.AppendLine(ex.Message);
isAllClean = false;
}
}
foreach (DirectoryInfo dir in SysRecDir.GetDirectories())
{
try
{
dir.Delete(true);
}
catch (Exception ex)
{
recentLogLines.AppendLine(ex.Message);
isAllClean = false;
}
}
return isAllClean;
}