我下载一个文件用这种方法从中读取:下载一个文件,并在同一时间
WebClient WC = new WebClient();
WC.DownloadFile(url, filePath);
,我想的是,在同一时间与读取文件在同一时间:
var fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.None);
,但我得到八方通:
The process cannot access the file 'filePath' because it is being used by another process.
有可能下载和阅读在同一时间?
编辑
我现在与下载文件:
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);
}
}
}
,仍然得到错误....
不该文件需要写入磁盘?你总是可以将它下载到内存并读取流。 – 2013-04-11 14:40:23
要做类似*的事情,您应该使用原始的'HttpWebRequest' /'GetResponseStream'并在每个块到达时(通过任何“读取”方法)处理每个块。 – 2013-04-11 14:41:22
可以将每个块下载并写入文件? – MTA 2013-04-11 14:43:08