.net 提示正由另一进程使用,因此该进程无法访问该文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.net 提示正由另一进程使用,因此该进程无法访问该文件相关的知识,希望对你有一定的参考价值。
我再做一个上传下载系统,在电脑上存储了其他人上传的文件,已加密。下载做下载时要解密,解密后将要下载的文件存在另外一个文件夹里,然后再用 这段代码来下载文件,每次解密后点下载就会提示这个文件正在被另一进程使用,怎么办怎么办呢??我感觉是解密的时候把源文件存入了解密后的盘在占用进程??怎么解决呀
string fileName = "asd.txt";//客户端保存的文件名
string filePath = Server.MapPath("DownLoad/aaa.txt");//路径
FileInfo fileInfo = new FileInfo(filePath);
Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName);
Response.AddHeader("Content-Length", fileInfo.Length.ToString());
Response.AddHeader("Content-Transfer-Encoding", "binary");
Response.ContentType = "application/octet-stream";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
Response.WriteFile(fileInfo.FullName);
Response.Flush();
Response.End();
所以要把资源释放了下次才能再使用
在后面加一句:fileInfo.Close();追问
http://zhidao.baidu.com/question/573269793.html 请帮我看看具体的 非常感谢。
参考技术ASystem.IO.FileStream fs = new System.IO.FileStream(fileName,
System.IO.FileMode.Open)
这个方法打开文件的时候是以只读共享的方式打开的,但若此文件已被一个拥有写权限的进程打开的话,就无法读取了。
因此需要使用
System.IO.FileStream fs = new System.IO.FileStream(fileName, System.IO.FileMode.Open,System.IO.FileAccess.Read,FileShare.ReadWrite);
设置文件共享方式为读写,FileShare.ReadWrite,这样的话,就可以打开了。
参考技术B 你把右下角的那些像书本一样的都关了试试 目测是你上传和下载的文件没有完全的退出 所以才会这样 参考技术C 能否用Dispatcher之类的释放下资源?以上是关于.net 提示正由另一进程使用,因此该进程无法访问该文件的主要内容,如果未能解决你的问题,请参考以下文章
c# 读写文件时文件正由另一进程使用,因此该进程无法访问该文件
c# 读写文件时文件正由另一进程使用,因此该进程无法访问该文件
FileStram文件正由另一进程使用,该进程无法访问该文件,解决方法
FileStream: 文件“XXX”正由另一进程使用,因此该进程无法访问此文件