由网友(吥酷吥帅吥潇洒)分享简介:我下载一个文件,这个方法:Web客户端WC =新的Web客户端();WC.DownloadFile(URL,文件路径);和我想在同一时间阅读的同时与文件:变种FS =新的FileStream(文件路径,FileMode.Open,FileAccess.Read,FileShare.None);但我得到传真:,因为它正...
我下载一个文件,这个方法:
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?
Edit
I 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);
}
}
}
相关推荐
最新文章