我想删除一个文件,以防它被另一个进程锁定,即使我已经设置了try catch,但该程序仍然是fi.Delete()的暗现金,所以如何解决它。
类型'System.UnauthorizedAccessException'的第一次机会异常 发生在mscorlib.dll
附加信息:访问路径'H:\ J \ R \ sound.MP4'是 拒绝。
private void GView_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
{
try
{
string cellValue = GView.Rows[e.RowIndex].Cells["NAME"].Value.ToString();
var confirmResult = MessageBox.Show("delete this item " + cellValue,
"Confirm Delete!!",
MessageBoxButtons.YesNo);
if (confirmResult == DialogResult.Yes)
{
System.IO.FileInfo fi = new System.IO.FileInfo(cellValue);
fi.Delete();
}
else
{
}
}
catch (UnauthorizedAccessException ex)
{
MessageBox.Show(ex.Message);
}
}
答案 0 :(得分:1)
private void GView_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
{
try
{
string cellValue = GView.Rows[e.RowIndex].Cells["NAME"].Value.ToString();
var confirmResult = MessageBox.Show("delete this item " + cellValue,
"Confirm Delete!!",
MessageBoxButtons.YesNo);
if (confirmResult == DialogResult.Yes)
{
System.IO.FileInfo fi = new System.IO.FileInfo(cellValue);
fi.Delete();
}
else
{
}
}
catch(System.IO.IOException)
{
// exception when file is in use or any other
}
catch (UnauthorizedAccessException ex)
{
MessageBox.Show(ex.Message);
}
catch(Exception ex)
{
// all other
}
}
答案 1 :(得分:1)
我按照@Keyur PATEL的建议读了这个article,并且弄清楚这是Visual Studio的配置,我通过执行以下操作解决了这个问题:
感谢您的帮助
答案 2 :(得分:0)
用户(其帐户用于运行您的应用程序)必须能够访问该路径
有两种方法可以实现这一目标: