C# 无法从最近的文件夹中删除文件

C# 无法从最近的文件夹中删除文件,c#,.net,C#,.net,我正在写一个软件,可以删除临时文件,预取数据,最近文件夹中的文件等。我的问题是我可以成功地从临时文件夹中删除文件,但当我尝试删除最近的文件夹时,会抛出一个异常,“对路径…的访问被拒绝”。 PS:根据其他一些问题,我已经将文件属性设置为正常,但仍然没有运气。请在这个问题上帮助我。为了让您更好地理解,我在这里添加了一些代码: public Boolean CleanRecentData() { isAllClean = true; String SysRecentPa

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

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

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

  • 在访问之前,您需要检查是否具有文件访问权限,但如果在太多文件上执行此操作,则可能会造成冗余和浪费
  • 只要试着打开这个文件,如果失败的话,把你的努力放到一个好的异常处理程序中

  • 您是否尝试过使用管理员权限运行可执行文件?另外,仅供参考,我建议您不要只记录ex.Message,而是记录ex.ToString()。@MarcF,谢谢,但我尝试过使用管理员权限。我在Win7中的用户名具有管理员权限。我可以删除任何其他文件,但不能从最近的文件中删除任何文件folder@JohnSaunders,谢谢您的回复。我现在无法从Win Explorer访问最近的文件夹。