我下載一個文件用這種方法從中讀取:下載一個文件,並在同一時間
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