Advertisement

C#/JAVA下载文件前通过HTTP请求获取文件大小

阅读量:

前言:

winform程序下载功能,想要在下载前获取到文件的大小等信息并展示到界面上,通过查找发现网上有类似的JAVA代码,于是效仿之~

JAVA代码:

复制代码
 /** * 获取网络文件大小 
    
 */
    
     private static long getFileLength(String downloadUrl) throws IOException{
    
 		  if(downloadUrl == null || "".equals(downloadUrl)){
    
 			  return 0L ; 
    
 		  }
    
 	      URL url = new URL(downloadUrl);
    
 	      HttpURLConnection conn = null;
    
 	      try {
    
 	          conn = (HttpURLConnection) url.openConnection();
    
 	          conn.setRequestMethod("HEAD");
    
 	          conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows 7; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.73 Safari/537.36 YNoteCef/5.8.0.1 (Windows)");
    
 	          return (long) conn.getContentLength();
    
 	      } catch (IOException e) {
    
 	          return 0L;
    
 	      } finally {
    
 	          conn.disconnect();
    
 	    }
    
      }
    
    
    
    
    java
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-07-14/Klxi4bJWOzaQIp7PTnRN30DevthH.png)

C#代码:

复制代码
 public static string GetInfo(string URL)

    
  
    
     {
    
         string Results = "";
    
  
    
         long ContentL = 0;
    
  
    
         if (URL.ToLower().StartsWith("http://"))
    
  
    
         {
    
  
    
             HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);
    
  
    
             request.MaximumAutomaticRedirections = 4;
    
  
    
             request.MaximumResponseHeadersLength = 4;
    
  
    
             request.Credentials = CredentialCache.DefaultCredentials;
    
  
    
             HttpWebResponse response = (HttpWebResponse)request.GetResponse();
    
  
    
             ContentL = response.ContentLength;
    
  
    
             response.Close();
    
  
    
             Results +=  GetSize(ContentL);
    
  
    
  
    
         }
    
  
    
         else if (URL.ToLower().StartsWith("ftp://"))
    
  
    
         {
    
  
    
  
    
  
    
             FtpWebRequest request = (FtpWebRequest)WebRequest.Create(URL);
    
  
    
             request.Method = WebRequestMethods.Ftp.GetFileSize;
    
  
    
             request.UseBinary = true;
    
  
    
             FtpWebResponse response = null;
    
  
    
             response = (FtpWebResponse)request.GetResponse();
    
  
    
             Stream Fs = response.GetResponseStream();
    
  
    
             ContentL = response.ContentLength;
    
  
    
             Fs.Close();
    
  
    
             response.Close();
    
  
    
  
    
  
    
             Results += GetSize(ContentL);
    
  
    
         }
    
  
    
         else
    
  
    
         {
    
  
    
             Results += "无法检测";
    
  
    
         }
    
  
    
  
    
  
    
         return Results;
    
  
    
     }
    
  
    
     //大小转化  
    
  
    
     public static string GetSize(long L)
    
  
    
     {
    
  
    
         float result;
    
  
    
         string re = "";
    
  
    
         if (L >= 1073741824)
    
  
    
         {
    
  
    
             result = L / 1073741824.00F;
    
  
    
             re = "GB";
    
  
    
         }
    
         else if (L >= 1048576)
    
  
    
         {
    
  
    
             result = L / 1048576.00F;
    
  
    
             re = "MB";
    
  
    
         }
    
  
    
         else
    
  
    
         {
    
  
    
             result = L / 1024.00F;
    
  
    
             re = "KB";
    
  
    
         }
    
  
    
         string File_Size = result.ToString("0.00");
    
  
    
         return (File_Size + re);
    
  
    
     }
    
    
    
    
    cs
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-07-14/hor0vJH1LbVlMxmENp3KcADGuP2U.png)

全部评论 (0)

还没有任何评论哟~