删除图片时报:正由另一进程使用,因此该进程无法访问
程序上传到服务器,删除图片,
报sys.webforms.pagerequestmanagerservererrorexception:文件“E:***”正由另一进程使用,因此该进程无法访问该文件
在本机运行删除是没有问题的,但上传服务器后出现这个问题。
部分代码如下:
/// <summary>
/// 删除相片按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lbtnDele_Click(object sender, EventArgs e)
{
int photoId = Convert.ToInt32(ViewState["PID"]);
MyPhotos photo = MyPhotosManager.GetMyPhotosByMyPhotosId(photoId);
MyAlbum album = MyAlbumManager.GetMyAlbumByAlbumId(photo.AlbumId);
if (album.HomePhotos == photoId) //如果要删除的相片为相册封面
{
album.HomePhotos = 0; //设置封面字段为0
MyAlbumManager.UpdateAlbum(album);
}
else
{
DeleFile(photo.SavePath); //删除在硬盘上的图片
}
List<PhotoComment> list = PhotoCommentManager.GetAllCommentByPhotoId(photoId);
foreach (PhotoComment c in list)
{
List<ToReply> toList = ToReplyManager.GetAllReplyByCommentId(c.PhotoCommentId);
foreach (ToReply t in toList)
{
ToReplyManager.DeleToReplyByToReplyId(t.ToReplyId); //删除所有回复
}
}
PhotoCommentManager.DeleCommentByPhotoId(photoId); //删除图片的所有评论
int i = MyPhotosManager.DelePhotoById(photoId); //从数据库中删除图片
MyAlbum newAlbum = MyAlbumManager.GetMyAlbumByAlbumId(photo.AlbumId);
int count = newAlbum.PictureNum;
newAlbum.PictureNum = count - 1;
int j = MyAlbumManager.UpdateAlbum(newAlbum); //更新相册照片数
List<MyPhotos> alist = MyPhotosManager.GetAllByAlbumId(newAlbum.AlbumId);
if (alist.Count > 0)
{
PhotoRreOrNext(0); //删除照片后,显示下一张照片
}
else
{
Response.Redirect("photo.aspx"); //如果这个相册只有一张照片,删除就跳入相册首页面
}
}
/// <summary>
/// 删除文件
/// </summary>
/// <param name="filePath"></param>
public void DeleFile(string filePath)
{
try
{
string path = Server.MapPath(filePath);
System.IO.FileInfo DeleFile = new System.IO.FileInfo(path);
if (DeleFile.Exists)
{
DeleFile.Delete();
}
}
catch (Exception ex)
{
throw ex;
}
}
报sys.webforms.pagerequestmanagerservererrorexception:文件“E:***”正由另一进程使用,因此该进程无法访问该文件
在本机运行删除是没有问题的,但上传服务器后出现这个问题。
部分代码如下:
/// <summary>
/// 删除相片按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lbtnDele_Click(object sender, EventArgs e)
{
int photoId = Convert.ToInt32(ViewState["PID"]);
MyPhotos photo = MyPhotosManager.GetMyPhotosByMyPhotosId(photoId);
MyAlbum album = MyAlbumManager.GetMyAlbumByAlbumId(photo.AlbumId);
if (album.HomePhotos == photoId) //如果要删除的相片为相册封面
{
album.HomePhotos = 0; //设置封面字段为0
MyAlbumManager.UpdateAlbum(album);
}
else
{
DeleFile(photo.SavePath); //删除在硬盘上的图片
}
List<PhotoComment> list = PhotoCommentManager.GetAllCommentByPhotoId(photoId);
foreach (PhotoComment c in list)
{
List<ToReply> toList = ToReplyManager.GetAllReplyByCommentId(c.PhotoCommentId);
foreach (ToReply t in toList)
{
ToReplyManager.DeleToReplyByToReplyId(t.ToReplyId); //删除所有回复
}
}
PhotoCommentManager.DeleCommentByPhotoId(photoId); //删除图片的所有评论
int i = MyPhotosManager.DelePhotoById(photoId); //从数据库中删除图片
MyAlbum newAlbum = MyAlbumManager.GetMyAlbumByAlbumId(photo.AlbumId);
int count = newAlbum.PictureNum;
newAlbum.PictureNum = count - 1;
int j = MyAlbumManager.UpdateAlbum(newAlbum); //更新相册照片数
List<MyPhotos> alist = MyPhotosManager.GetAllByAlbumId(newAlbum.AlbumId);
if (alist.Count > 0)
{
PhotoRreOrNext(0); //删除照片后,显示下一张照片
}
else
{
Response.Redirect("photo.aspx"); //如果这个相册只有一张照片,删除就跳入相册首页面
}
}
/// <summary>
/// 删除文件
/// </summary>
/// <param name="filePath"></param>
public void DeleFile(string filePath)
{
try
{
string path = Server.MapPath(filePath);
System.IO.FileInfo DeleFile = new System.IO.FileInfo(path);
if (DeleFile.Exists)
{
DeleFile.Delete();
}
}
catch (Exception ex)
{
throw ex;
}
}
...全文
相关推荐
C#程序提示“正由另一进程使用,因此该进程无法访问该文件”的解决办法
主要介绍了C#程序提示“正由另一进程使用,因此该进程无法访问该文件”的解决办法,本文通过改写程序代码实现解决这个问题,需要的朋友可以参考下
WORD文档此文件正由另一应用程序或用户使用的解决办法!
WORD文档此文件正由另一应用程序或用户使用的解决办法!
IIS “另一个程序正在使用此文件,进程无法访问。”错误提示的解决办法
如何查看哪个程序打开了tcp 80端口呢?使用“开放端口查看软件Active ports”就可以一目了然了。我查看了一下我的机器情况,如图所示: 从图上看出原来Skype打开了Tcp 80端口,原来是这个家伙惹的祸,将其关闭。再重启IIS,一切正常。 如果在IIS启动之后再开Skype,Skype仍能正常使用。说明Skype发现tcp 80端口已打开就不再使用此端口了。看来启动IIS还得有个顺序,那就是先启动IIS再启动Skype。 补充:其实Skype可以通过设置不让其打开80端口的。这样就不用考虑启动顺序的问题了。具体操作是:Skype 菜单”工具”->”选项”->”连接” 项,
解决文件正被另一个程序使用而无法删除问题的小程序
解决文件正被另一个程序使用而无法删除问题的小程序
出现“该文件正被别的进程使用,不能删除”时
删除不能删除的文件:出现“该文件正被别的进程使用,不能删除”时


