【问题标题】:Deleting Files with c#使用 c# 删除文件
【发布时间】:2016-01-09 11:22:14
【问题描述】:

我正在制作一个程序来删除我电脑上的一些文件。但是当我尝试这样做时,我会收到一些类似这样的错误消息:

如果您尝试访问文件,请确保它不是只读的。

确保您有足够的权限访问此资源。

获取此异常的一般帮助。

    foreach (string subFich in SubFicheiros)
    {
        listBox.Items.Add("- Deleting File: " + subFich.Substring(Pasta.Length + 1, subFich.Length - Pasta.Length - 1));
        ficheirosEncontrador++;
    }
    try
    {
        Directory.Delete(Pasta, true);
    }
    catch (IOException)
    {
        Thread.Sleep(0);
    //The Message Error appears here on this code right below:
            Directory.Delete(Pasta, true);

    }
    catch (UnauthorizedAccessException)
    {
        Directory.Delete(Pasta, true);
    }
}

我想得到一些帮助。 我如何要求用户,让我获得删除它的权限。

【问题讨论】:

  • 您在trycatch 块中重复Directory.Delete() 命令。它应该只在try 块中。权限由 PC 上的管理员在您的程序之外设置。

标签: c# error-handling delete-file


【解决方案1】:

好吧..您的代码所做的是:您正在删除目录,如果它给出任何异常,那么您将再次尝试执行出现异常的相同步骤。

首先错误是因为文件被设置为只读或因为您没有足够的权限来删除目录(或者可能某些进程正在使用您要删除的文件)

 foreach (string subFich in SubFicheiros)
{
    listBox.Items.Add("- Deleting File: " + subFich.Substring(Pasta.Length + 1, subFich.Length - Pasta.Length - 1));
    ficheirosEncontrador++;
}
try
{
var di = new DirectoryInfo(Pasta);
di.Attributes &= ~FileAttributes.ReadOnly;
 Directory.Delete(Pasta, true);
}
catch (Exception EE)
{

 MessageBox.Show("Error: "+ EE.toString());
}

如果此代码仍然不起作用,请检查您是否具有删除该文件夹的管理员权限

【讨论】:

    【解决方案2】:

    听起来您的文件是只读的,或者您无权根据您的用户登录删除所需的文件。

    【讨论】:

      猜你喜欢
      • 2012-12-16
      • 2015-03-04
      • 2017-01-06
      • 2019-12-10
      • 2012-05-23
      • 2015-01-02
      • 1970-01-01
      • 2017-03-24
      • 1970-01-01
      相关资源
      最近更新 更多