我正在编写一个程序来删除PC上的某些文件。但是,当我尝试执行此操作时,会收到如下错误消息:
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);
}
}
我想得到一些帮助。我如何要求用户让我获得删除它的特权。
最佳答案
好吧..您的代码在做什么:您正在删除目录,并且如果它给出任何异常,则您将再次尝试执行获得异常的相同步骤。
首先,错误是因为文件设置为只读,或者因为您没有足够的权限删除目录(或者可能是某些进程正在使用您要删除的文件)
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());
}
如果此代码仍然不起作用,请检查您是否具有删除该文件夹的管理员权限