C#删除文件时老是提示该文件正在使用

在用C#代码删除文件时老是提示文件正在使用,这是怎么一回事儿?望各位朋友给于指导!
代码如下:
PhotoModel photoModel = new PhotoDal().GetPhotoByParam(int.Parse(Request["txtId"].ToString()));
if (File.Exists(Server.MapPath(photoModel.PhotoPic)))
{
File.Delete(Server.MapPath(photoModel.PhotoPic));
}
int i = new PhotoDal().DeleteCorpPhoto(int.Parse(Request["txtId"].ToString()));
strJson = "照片删除成功!";

第1个回答  推荐于2016-09-18
PhotoModel photoModel = new PhotoDal().GetPhotoByParam(int.Parse(Request["txtId"].ToString()));

string path=photoModel.PhotoPic;//定义一个变量来保存图片地址

//code ,释放photoModel对象,具体的语句可以看看PhotoModel里面的方法,比如Dispose方法
//然后再进行删除操作
if (File.Exists(Server.MapPath(path)))
{
File.Delete(Server.MapPath(path));
}本回答被提问者采纳
第2个回答  2010-05-17
一定要记得读取之后要关闭流
如果你使用了FileStream要先把FileStream给Close掉。
也有可能你获取的是图片文件,在进行删除前,你的先销毁image对象,
System.Drawing.Image img = System.Drawing.Image.FromFile(filepath);
System.Drawing.Image bmp = new System.Drawing.Bitmap(img);
img.Dispose();
//销毁之后用bmp作为Image对象
第3个回答  2010-05-17
你好,你看下工具栏中是否有显示你要删除的文件,如果有把文件关闭,再运行程序,就可以正常关闭了
假设你现在要用C#删除一个记事本文件,但是你正好打开记事本进行修改,这个时候,就会提示,文件正在使用
第4个回答  2010-05-17
是不是把照片用其他软件打开查看了,必须结束照片浏览程序,如ACDSEE就是这样的。
第5个回答  2010-05-17
先要结束文件操作,调用Close方法,即可
相似回答