@אוריי הנה חתיכת קוד שאמורה לעשות את מה שאתה מבקש משורת הפקודה (מבוסס על קוד מאתר מייקרוסופט: מקור בשילוב עם קוד מסטאק: מקור)
using System;
using System.IO;
using System.Net;
namespace FTPDownload
{
class Program
{
/// <summary>
/// Copies the contents of input to output. Doesn't close either stream.
/// </summary>
private static void CopyStream(Stream input, Stream output)
{
byte[] buffer = new byte[8 * 1024];
int len;
while ((len = input.Read(buffer, 0, buffer.Length)) > 0)
{
output.Write(buffer, 0, len);
}
}
static void Main(string[] args)
{
{
// Get the object used to communicate with the server.
// and URL from first command line argument
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(args[0]);
request.Method = WebRequestMethods.Ftp.DownloadFile;
// Set Credentials from command line arguments
request.Credentials = new NetworkCredential(args[1], args[2]);
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
using (Stream file = File.Create(args[4]))
{
CopyStream(responseStream, file);
}
Console.WriteLine($"Download Complete, status {response.StatusDescription}");
response.Close();
}
}
}
}
מצ"ב קובץ הריצה המקומפל FTPDownload.exe
זה אמור לעבוד משורת הפקודה, תעביר לו ארבעה ארגומנטים:
כתובת-FTP
שם משתמש
סיסמה
שם קובץ יעד
דוגמא:
FTPDownload ftp://111.222.333.444/Somefile.txt UserName Password C:\Temp\MyFile.txt