0

我正在编写一个可以删除临时文件、预取数据、最近文件夹中的文件等的软件。我的问题是我可以成功地从 Temp 文件夹中删除文件,但是当我尝试最近的文件夹时,抛出异常,“访问路径...被拒绝”。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;
    }
4

1 回答 1

1

您可以通过 Windows 资源管理器访问“最近”文件夹吗?

您可以继续更改系统中的权限,但不能更改用户系统中的权限。因此,您可以通过两种方式处理此异常情况。

  1. 您需要在访问之前使用FileIOPermission检查您是否具有文件访问权限,但如果您对太多文件执行此操作,这可能是多余和浪费的。
  2. 如果失败,请尝试打开文件并努力使用一个好的异常处理程序 参考
于 2013-03-16T02:03:08.293 回答