下载文件,并从它在同一时间阅读它在、并从、文件

2023-09-06 15:54:53 作者:吥酷吥帅吥潇洒

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

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

 
精彩推荐
图片推荐