Skip to content

Instantly share code, notes, and snippets.

@nboubakr
Created December 5, 2013 19:36
Show Gist options
  • Save nboubakr/7812375 to your computer and use it in GitHub Desktop.
Save nboubakr/7812375 to your computer and use it in GitHub Desktop.
Simple function in C# to download a file from the internet, supports to resume the download.
public static void downloadFile(string sourceURL, string destinationPath)
{
long fileSize = 0;
int bufferSize = 1024;
bufferSize *= 1000;
long existLen = 0;
System.IO.FileStream saveFileStream;
if (System.IO.File.Exists(destinationPath))
{
System.IO.FileInfo destinationFileInfo = new System.IO.FileInfo(destinationPath);
existLen = destinationFileInfo.Length;
}
if (existLen > 0)
saveFileStream = new System.IO.FileStream(destinationPath,
System.IO.FileMode.Append,
System.IO.FileAccess.Write,
System.IO.FileShare.ReadWrite);
else
saveFileStream = new System.IO.FileStream(destinationPath,
System.IO.FileMode.Create,
System.IO.FileAccess.Write,
System.IO.FileShare.ReadWrite);
System.Net.HttpWebRequest httpReq;
System.Net.HttpWebResponse httpRes;
httpReq = (System.Net.HttpWebRequest) System.Net.HttpWebRequest.Create(sourceURL);
httpReq.AddRange((int) existLen);
System.IO.Stream resStream;
httpRes = (System.Net.HttpWebResponse) httpReq.GetResponse();
resStream = httpRes.GetResponseStream();
fileSize = httpRes.ContentLength;
int byteSize;
byte[] downBuffer = new byte[bufferSize];
while ((byteSize = resStream.Read(downBuffer, 0, downBuffer.Length)) > 0)
{
saveFileStream.Write(downBuffer, 0, byteSize);
}
}
@sanamasako
Copy link

Hi, I'm really new to C# (this is like my first time using it) I'm trying to make a C# commandline app and one of the commands I'm trying to make is a "checkforupdates" command which then checks one of my private repositories for a filename similar to my commandline app's filename but with a higher version number (so say for example Alpha 1 detects Alpha 2 and it's ready to download it, but if Alpha 1 detects Alpha 1 it doesn't download it). Can you please help me with this?

@maythamfahmi
Copy link

Hi, I'm really new to C# (this is like my first time using it) I'm trying to make a C# commandline app and one of the commands I'm trying to make is a "checkforupdates" command which then checks one of my private repositories for a filename similar to my commandline app's filename but with a higher version number (so say for example Alpha 1 detects Alpha 2 and it's ready to download it, but if Alpha 1 detects Alpha 1 it doesn't download it). Can you please help me with this?

please spend some time learning c# and you will find a solution.

@R2turnTrue
Copy link

Called the UnauthorizedAccessException in 21 line
How to fix it?

I guess you pass folder name without filename.

This give this kind of error => C:\myfolder\

This works fine => C:\myfolder\myfile.ext

Thank you! It's worked!

@Medard-prog
Copy link

System.UnauthorizedAccessException: 'Access to the path 'F:\asd' is denied.'

Please help me!

@maythamfahmi
Copy link

System.UnauthorizedAccessException: 'Access to the path 'F:\asd' is denied.'

Please help me!

This is not related to code, the code telling you that you do not have permission on F drive with the given folder name

@Mervinpais
Copy link

System.UnauthorizedAccessException: 'Access to the path 'F:\asd' is denied.'

Please help me!

Check if drive F: exists (open file explorer and make sure you can access the drive with the files/folders in it etc.)
then try running the code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment