当我尝试删除此文件时,我收到此消息 文件无法被其他进程使用删除 即使文件未被任何其他用户使用 我正在使用的代码
try
{
FileInfo TheFile = new FileInfo(MapPath(".") + "\\" + txtFile.Text);
if (TheFile.Exists) {
File.Delete(MapPath(".") + "\\" + txtFile.Text);
}
else {
throw new FileNotFoundException();
}
}
catch (FileNotFoundException ex) {
lblStatus.Text += ex.Message;
}
我们可以分配一个布尔值
此处如果为true则表示我可以显示消息tellfile已成功删除
布尔值为false
此处如果为false则表示我可以显示另一个进程使用的消息告知文件
我可以在这里写下这个条件
File.Delete(MapPath(".") + "\\" + txtFile.Text);
任何帮助都会非常感谢你
答案 0 :(得分:3)
根据我的经验,如果它说该文件正由另一个进程使用,则 文件被另一个进程使用,无论你怎么想......
下载ProcessExplorer以了解罪魁祸首是谁......
答案 1 :(得分:1)
答案 2 :(得分:1)
我认识的派对有点晚了,但希望这些评论可以帮助其他人 - >
问题不在Chrome中,而是在IE6 / 7/8和FF中。这种方法现在适用于后来的浏览器:
try
{
System.IO.File.Delete(basePath + assetImage.Path);
}
catch
{
System.IO.File.Move(basePath + assetImage.Path, basePath + @"DELETE\ " + assetImage.Path);
}
答案 3 :(得分:0)
你为什么不试试
if (TheFile.Exists) {
TheFile.Delete();
}
答案 4 :(得分:0)
如果启用了索引服务,请确保从索引列表中排除此文件夹。
答案 5 :(得分:0)
如果你想要一个方法,如果文件被成功删除则只返回true,否则返回false,我会选择:
public bool DeleteFile(string fullPath) {
bool fileDeleted = false;
if (System.IO.File.Exists(fullPath))
{
try
{
System.IO.File.Delete(fullPath);
fileDeleted = true;
}
catch (UnauthorizedAccessException)
{
// File is open **or read only**
}
}
else
{
// File does not exist
}
return fileDeleted;
}