本文介绍了下载文件,并从它在同一时间阅读的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我下载一个文件,这个方法:
Web客户端WC =新的Web客户端(); WC.DownloadFile(URL,文件路径);和我想在同一时间阅读的同时与文件:
变种FS =新的FileStream(文件路径,FileMode.Open,FileAccess.Read,FileShare.None);
但我得到传真:
,因为它正由另一个进程无法访问文件文件路径的过程。
这是可能的下载和阅读的同时?
修改我现在下载的文件:
VAR REQ =(HttpWebRequest的)HttpWebRequest.Create(URL); VAR FILESTREAM =新的FileStream(文件路径, FileMode.Create,FileAccess.ReadWrite,FileShare.ReadWrite); 使用(VAR RESP = req.GetResponse()) { 使用(VAR流= resp.GetResponseStream()) { byte []的缓冲区=新的字节[0x10000的]。 INT LEN; 而((LEN = stream.Read(缓冲液,0,buffer.Length))大于0) { fileStream.Write(缓冲液,0,LEN); } } }和仍然得到错误....
解决方案 VAR REQ =(HttpWebRequest的)HttpWebRequest.Create(URL); 使用(VAR RESP = req.GetResponse()) { 使用(VAR流= resp.GetResponseStream()) { byte []的缓冲区=新的字节[0x10000的]。 INT LEN; 而((LEN = stream.Read(缓冲液,0,buffer.Length))大于0) { //是否有任何你想要的内容 // ***您的code *** fileStream.Write(缓冲液,0,LEN); } } }I download a file with this method:
WebClient WC = new WebClient(); WC.DownloadFile(url, filePath);And i want that in the same time to read the file in the same time with:
var fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.None);but i get allways :
The process cannot access the file 'filePath' because it is being used by another process.It's possible to download and read in the same time?
EditI now download the file with:
var req = (HttpWebRequest)HttpWebRequest.Create(url); var fileStream = new FileStream(filePath, FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite); using (var resp = req.GetResponse()) { using (var stream = resp.GetResponseStream()) { byte[] buffer = new byte[0x10000]; int len; while ((len = stream.Read(buffer, 0, buffer.Length)) > 0) { fileStream.Write(buffer, 0, len); } } }And still get the error....
解决方案 var req = (HttpWebRequest)HttpWebRequest.Create(url); using (var resp = req.GetResponse()) { using (var stream = resp.GetResponseStream()) { byte[] buffer = new byte[0x10000]; int len; while ((len = stream.Read(buffer, 0, buffer.Length))>0) { //Do with the content whatever you want // ***YOUR CODE*** fileStream.Write(buffer, 0, len); } } }
更多推荐
下载文件,并从它在同一时间阅读
发布评论