下载文件,并从它在同一时间阅读 [英] Download a file and read from it in the same time

查看:129
本文介绍了下载文件,并从它在同一时间阅读的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我下载一个文件,这个方法:

  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);
        }
    }
}

这篇关于下载文件,并从它在同一时间阅读的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆