• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C#以二进制流方式读写文件

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

 

///1.判断远程文件是否存在 
 
///fileUrl:远程文件路径,包括IP地址以及详细的路径
 
private bool RemoteFileExists(string fileUrl)
         {
             bool result = false;//下载结果
 
            WebResponse response = null;
             try
             {
                 WebRequest req = WebRequest.Create(fileUrl);
 
                response = req.GetResponse();
 
                result = response == null ? false : true;
 
            }
             catch (Exception ex)
             {
                 result = false;
             }
             finally
             {
                 if (response != null)
                 {
                     response.Close();
                 }
             }
 
            return result;
         }
 
 
 
 
 
 
 
         

         /// 2.通过传入的url获取远程文件数据(二进制流),大家可以通过Response.BinaryWrite()方法将获取的数据流输出
 
        /// </summary>
         /// <param name="url">图片的URL</param>
         /// <param name="ProxyServer">代理服务器</param>
         /// <returns>图片内容</returns>
         public byte[] GetFile(string url, string proxyServer)
         {
             WebResponse rsp = null;
             byte[] retBytes = null;
 
            try
             {
                 Uri uri = new Uri(url);
                 WebRequest req = WebRequest.Create(uri);
 
                rsp = req.GetResponse();
                 Stream stream = rsp.GetResponseStream();
 
                if (!string.IsNullOrEmpty(proxyServer))
                 {
                     req.Proxy = new WebProxy(proxyServer);
                 }
 
                using (MemoryStream ms = new MemoryStream())
                 {
                     int b;
                     while ((b = stream.ReadByte()) != -1)
                     {
                         ms.WriteByte((byte)b);
                     }
                     retBytes = ms.ToArray();
                 }
             }
             catch (Exception ex)
             {
                 retBytes = null;
             }
             finally
             {
                 if (rsp != null)
                 {
                     rsp.Close();
                 }
 
 
 
 
 
          ///将本地文件通过httpwebrequest上传到服务器
 
          ///localFile:本地文件路径及文件名称,uploadUrl:远程路径(虚拟目录)
 
          ///在远程路径中需要把文件保存在的文件夹打开权限设置,否则上传会失败
 
         public bool UploadFileBinary(string localFile, string uploadUrl)
         {
             bool result = false;
             HttpWebRequest req = null;
             Stream reqStream = null;
             FileStream rdr = null;
 
            try
             {
 
                req = (HttpWebRequest)WebRequest.Create(uploadUrl);
 
                req.Method = "PUT";
                 req.AllowWriteStreamBuffering = true;
 
                // Retrieve request stream 
                reqStream = req.GetRequestStream();
 

                // Open the local file
                 rdr = new FileStream(localFile, FileMode.Open);
 
                byte[] inData = new byte[4096];
 
                int bytesRead = rdr.Read(inData, 0, inData.Length);
                 while (bytesRead > 0)
                 {
                     reqStream.Write(inData, 0, bytesRead);
                     bytesRead = rdr.Read(inData, 0, inData.Length);
                 }
 
                rdr.Close();
                 reqStream.Close();
 
                req.GetResponse();
 
                result = true;
             }
             catch (Exception e)
             {
                 result = false;
             }
             finally
             {
                 if (reqStream != null)
                 {
                     reqStream.Close();
                 }
                 if (rdr != null)
                 {
                     rdr.Close();
                 }
             }
             return result;
         }
 

            }
             return retBytes;
         }

本文转载于:http://www.cnblogs.com/tsgx108/archive/2008/11/18/1335618.html感谢原作者的贡献。转载请著名出处

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#项目完成PDF文件增加印章操作可指定印章位置发布时间:2022-07-13
下一篇:
关于unity中C#使用WaitForSeconds的方法发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap