从网络路径下载文件

本文介绍了两种从网络路径下的共享文件夹下载文件的方法:直接下载和分片下载。直接下载使用WebClient的DownloadFile方法,而分片下载则通过读取流并逐片写入目标文件实现,适用于大文件或需要认证的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.根据网络路径下的共享文件夹下载文件。

2.代码

(1)直接下载

WebClient wc = new WebClient()
                {
                    //Credentials = new NetworkCredential("Administrator", "Iphone6")
                    Credentials = CredentialCache.DefaultCredentials
                };
                wc.DownloadFile(@"\\192.168.1.131\share\"+filename,@"D:\"+filename);

WebClient的DownloadFile(网络路径位置,待存储位置)

(2)分片下载(可能需要用户名密码认证)

WebClient client = new WebClient()
                {
                    //Credentials = new NetworkCredential("Administrator", "Iphone6")
                    Credentials = CredentialCache.DefaultCredentials
                };
                Stream str = client.OpenRead(@"\\192.168.1.131\share\" + filename);
                StreamReader reader = new StreamReader(str);
                
                int allmybyte = (int)reader.BaseStream.Length;
                byte[] mbyte = new byte[allmybyte];
                int length = 4 * 1024 * 1024;
                int startmbyte = 0;
                while (allmybyte > 0)
                {
                    if (allmybyte<length)
                    {
                        length = allmybyte;
                    }
                    //Task<int> m = str.ReadAsync(mbyte, startmbyte, length);
                    int m = str.Read(mbyte, startmbyte, length);
                    if (m == 0)
                        break;
                    startmbyte += m;
                    allmybyte -= m;
                }
                reader.Dispose();
                str.Dispose();
                string path = @"F:\" + filename;
                FileStream fstr = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write);
                fstr.Write(mbyte, 0, startmbyte);
                fstr.Flush();
                fstr.Close();

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值