【发布时间】:2016-08-03 15:40:07
【问题描述】:
我有一个程序需要删除一个完整的目录,但我收到了Access to path denied 错误。我向所有人授予完全访问权限,但没有帮助。
private void timer1_Tick(object sender, EventArgs e)
{
label1.Text = DateTime.Now.ToString("HH:mm");
string lowDir = "";
if (label1.Text == comboBox1.Text)
{
try
{
if (System.IO.Directory.GetDirectories(txpath1.Text).Length != 0)
{
try
{
var folders = Directory.GetDirectories(@"" + txpath1.Text);
DateTime lastLow = DateTime.Now;
foreach (string subdir in Directory.GetDirectories(@"" + txpath1.Text))
{
DirectoryInfo fi1 = new DirectoryInfo(subdir);
fi1.Refresh();
DateTime created = fi1.LastWriteTime;
if (created < lastLow)
{
lowDir = subdir;
lastLow = created;
}
}
var dir = new DirectoryInfo(@"" + lowDir);
Directory.Delete(@"" + lowDir, true);
}
catch (Exception ex)
{
this.btStop.PerformClick();
MessageBox.Show(ex.Message+"\nEzért a program leállt.");
}
finally
{
timer1.Stop();
timer2.Start();
}
}
else
{
this.btStop.PerformClick();
MessageBox.Show("A megadott elérési útvonalon nem találhatóak fájlok a művelet(ek)hez!");
}
}
catch (DirectoryNotFoundException)
{
btStop.PerformClick();
MessageBox.Show("Hibás útvonala(kat)t adtál meg!");
}
}
}
【问题讨论】:
-
您是否在尝试删除目录之前检查目录是否为空?并确保该目录不是只读的
-
我不确定您是否正确转义
txpath1.Text。 -
乔希,不,我现在没有检查它,等我让它工作后,我会的。目录不为空,通常当目录包含 mp3、mp4 或 exe 文件时出现此错误。如果我将一个简单的 pdf 文件放入该目录,我不会收到此错误。
-
Josh,我认为这就是
.Delete()方法中的第二个参数 (true)(删除递归)。 @user1666620,C# 不应该在读出这个字符串时转义它吗? -
顺便说一句:你为什么打电话给
GetDirectories()txpath1.Text三次?在第一次调用时将结果缓存在folders中并使用它。
标签: c#