无法从Recent文件夹中删除文件

时间:2013-03-16 01:20:12

标签: c# .net

我正在编写一个软件,可以删除临时文件,预取数据,最近文件夹中的文件等。我的问题是我可以成功删除Temp文件夹中的文件,但是当我尝试使用Recent文件夹时,会抛出异常,“访问路径...被拒绝”。 PS:根据其他一些问题,我已将File属性设置为正常,但仍然没有运气。请帮我解决这个问题。为了更好地理解,我在这里添加了一些代码:

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;
    }

1 个答案:

答案 0 :(得分:1)

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

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

  1. 您需要在使用FileIOPermission之前检查您是否具有文件访问权限,但如果您在太多文件上执行此操作,这可能是多余的并且浪费。
  2. 如果失败,只需尝试打开文件并将您的精力投入到一个好的异常处理程序中 Reference