1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
public static bool RestartDownloadFromServer(string fileName, Uri serverUri, long offset)
{
// The serverUri parameter should use the ftp:// scheme.
// It identifies the server file that is to be downloaded
// Example: ftp://contoso.com/someFile.txt.
// The fileName parameter identifies the local file.
//The serverUri parameter identifies the remote file.
// The offset parameter specifies where in the server file to start reading data.
if (serverUri.Scheme != Uri.UriSchemeFtp)
{
string path01 = @"C:\01Local\essais\01\DownloadFailed.txt";
File.AppendAllLines(path01, new[] { "Le téléchargement du fichier a échoué" });
return false;
}
// Get the object used to communicate with the server.
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(serverUri);
request.Credentials = new NetworkCredential("login", "pass");
request.Method = WebRequestMethods.Ftp.DownloadFile;
FtpWebResponse response = null;
try
{
response = (FtpWebResponse)request.GetResponse();
}
catch (WebException e)
{
string path02 = @"C:\01Local\essais\01\FtpWebRequestFailed.txt";
File.AppendAllLines(path02, new[] { "Le téléchargement du fichier a échoué, statut : " + e.Status + ", Message : " + e.Message });
return false;
}
// Get the data stream from the response.
Stream responseStream = response.GetResponseStream();
// Use a StreamReader to simplify reading the response data.
FileStream writeStream = new FileStream(fileName, FileMode.Create);
int Length = 2048;
Byte[] buffer = new Byte[Length];
int bytesRead = responseStream.Read(buffer, 0, Length);
while (bytesRead > 0)
{
writeStream.Write(buffer, 0, bytesRead);
bytesRead = responseStream.Read(buffer, 0, Length);
}
// Cleanup.
writeStream.Close();
responseStream.Close();
response.Close();
string path03 = @"C:\01Local\essais\01\FtpWebRequestSuccessful.txt";
File.AppendAllLines(path03, new[] { "Download restart - status: {0}" + response.StatusDescription });
return true;
} |
Partager