C# 文件正由另一进程使用,该进程无法访问该文件

时间:2022-08-29 14:49:48
   错误信息
“/accidentManage”应用程序中的服务器错误。
--------------------------------------------------------------------------------

文件“C:\Documents and Settings\Administrator\桌面\accidentManage\accidentManage\accidentManage\projectFile\大概的风格\2010-6-17-15-19-20-593.jpg”正由另一进程使用,因此该进程无法访问该文件。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.IO.IOException: 文件“C:\Documents and Settings\Administrator\桌面\accidentManage\accidentManage\accidentManage\projectFile\大概的风格\2010-6-17-15-19-20-593.jpg”正由另一进程使用,因此该进程无法访问该文件。

源错误: 


行 259:                        //File.Delete(this.Server.MapPath("projectFile/" + projectTable.Rows[0]["F_PROJECT_NAME"].ToString() + "/") + img2);
行 260:                        Thread.Sleep(2000);
行 261:                        File.Delete(this.Server.MapPath("projectFile/" + projectTable.Rows[0]["F_PROJECT_NAME"].ToString() + "/") + picTable.Rows[0]["F_PIC_FILE"].ToString());
行 262:                    }
行 263:                    Response.Write("<script>alert('修改成功!');location.href='picList.aspx?projectId=" + projectId + "'</script>");
 

源文件: c:\Documents and Settings\Administrator\桌面\accidentManage\accidentManage\accidentManage\picList.aspx.cs    行: 261 

10 个解决方案

#1


Thread.Sleep(2000);

调试!认真的调试! 仔细的调试!

#2


想必你使用的是VS2010了,系统应该是XP了
我已经N次出现过了,没办法,每次都得把VS关了,然后再打开。。。。

#3


文件在使用过程中,是肯定不能被删除的.

#4


  上面是错误的信息,
   最近在做一个项目时,涉及到图片的上传和修改,点击修改图片按钮时,刚开始几次修改没有出现问题,修改几次后,问题就出现了。
   楼上说的Thread.Sleep(2000);
  我也调试过,还是出现了那个问题
  出现的问题的原因如楼上所说,当前的文件,图片正在使用,点击修改引发的进程是无法访问该文件的。
  

  我想问下,对这样的问题,有没有什么好的解决方案

#5


用一个static object变量来标记作为互斥量.
当A线程在使用的时候lock
lock(your-static-object)
{
  //do something... ...
}
当B线程在使用的时候也Lock
lock(your-static-object)
{
  //do something... ...
}
这样就使得永远只有一个线程在操作某个图片了.

#6


adfsdfs

#7


关掉,重启是王道

#8


FileStream操作文件
再close关闭

#9


好像没有什么办法,只有关掉VS,重新执行

#10


C# 文件正由另一进程使用,该进程无法访问该文件

#1


Thread.Sleep(2000);

调试!认真的调试! 仔细的调试!

#2


想必你使用的是VS2010了,系统应该是XP了
我已经N次出现过了,没办法,每次都得把VS关了,然后再打开。。。。

#3


文件在使用过程中,是肯定不能被删除的.

#4


  上面是错误的信息,
   最近在做一个项目时,涉及到图片的上传和修改,点击修改图片按钮时,刚开始几次修改没有出现问题,修改几次后,问题就出现了。
   楼上说的Thread.Sleep(2000);
  我也调试过,还是出现了那个问题
  出现的问题的原因如楼上所说,当前的文件,图片正在使用,点击修改引发的进程是无法访问该文件的。
  

  我想问下,对这样的问题,有没有什么好的解决方案

#5


用一个static object变量来标记作为互斥量.
当A线程在使用的时候lock
lock(your-static-object)
{
  //do something... ...
}
当B线程在使用的时候也Lock
lock(your-static-object)
{
  //do something... ...
}
这样就使得永远只有一个线程在操作某个图片了.

#6


adfsdfs

#7


关掉,重启是王道

#8


FileStream操作文件
再close关闭

#9


好像没有什么办法,只有关掉VS,重新执行

#10


C# 文件正由另一进程使用,该进程无法访问该文件