How to retrieve file size from a remote URL (using #CSharp)


Many time we need to programmatically retrieve the size of a file before downloading it from a web location or a network path. This is require to calculate the progress and/or the estimated time to download and display it to the user. For a local file it is easy, but to retrieve this information from a remote location, the implementation is little different.

 

Today in this small blog post, we will learn how to retrieve it dynamically using C# code. Continue reading to know about it. Code snippet has been shared in the post.

 

Retrieve file size from a remote URL using C# (www.kunal-chowdhury.com)

 

The system API class “System.Net.HttpWebRequest” allows you to retrieve the file information programmatically. The size of each file/page generally available in the header section of web response, which you can query to get it. Before getting the web response from the web request, set the method of the request to “HEAD”.

 

Header contains “Content-Length” property value which gives you the size of the file in bytes. This you can later calculate to convert in MB or GB. Here is the code snippet for you to refer:

 

private static string GetFileSize(Uri uriPath)
{
    var webRequest = HttpWebRequest.Create(uriPath);
    webRequest.Method = "HEAD";
 
    using (var webResponse = webRequest.GetResponse())
    {
       var fileSize = webResponse.Headers.Get("Content-Length");
       var fileSizeInMegaByte = Math.Round(Convert.ToDouble(fileSize) / 1024.0 / 1024.0, 2);
       return fileSizeInMegaByte + " MB";
    }
}

 

I hope that the post will help you to programmatically retrieve the details/file size of the remote file. Let me know, if you have any queries. Do connect with me on Twitter, Facebook or Google+ and subscribe to my news feed to get all the relevant links on developer and consumer specific.


If you have come this far, it means that you liked what you are reading. Why not reach little more and connect with me directly on Twitter , Facebook , Google+ and LinkedIn . I would love to hear your thoughts and opinions on my articles directly. Also, don't forget to share your views and/or feedback in the comment section below.

2 comments


 
© 2008-2016 Kunal-Chowdhury.com - Microsoft Technology Blog for developers and consumers | Designed by Kunal Chowdhury
Back to top