WinSCP ( WinSCP .NET ) FTP Upload 方法
using System; using System.IO; using System.Configuration; using WinSCP; class Program { static void Main(string[] args) { if(args.Length < 2) { if (args.Length < 1) Console.WriteLine("Paramter : \"Local File Path\" is not existed."); if (args.Length < 2) Console.WriteLine("Paramter : \"FTP Destination Folder Name\" is not existed."); Console.WriteLine("ConsoleApplication1.exe [Local File Path] [FTP Destination Folder Name]"); } else if (args.Length == 2 && args[0] != null && args[1] != null) { FileInfo file = new FileInfo(args[0].Trim()); if (file.Exists) { Console.WriteLine("Local File Path : " + file.FullName.Trim() + " Existed"); uploadtestwinscp(file, args[1]); } else { Console.WriteLine("Local File Path : " + file.FullName.Trim() + " Not Existed"); } } Console.ReadLine(); } private static void uploadtestwinscp(FileInfo LocalFilePath, String FolderPath) { try { SessionOptions sessionOptions = new SessionOptions { Protocol = Protocol.Ftp, HostName = ConfigurationSettings.AppSettings["Host"], UserName = ConfigurationSettings.AppSettings["FTP_User"], Password = ConfigurationSettings.AppSettings["FTP_Passwd"] }; using (Session session = new Session()) { session.Open(sessionOptions); TransferOptions transferOptions = new TransferOptions(); transferOptions.TransferMode = TransferMode.Binary; TransferOperationResult transferResult; transferResult = session.PutFiles(LocalFilePath.FullName, FolderPath, false, transferOptions); transferResult.Check(); foreach (TransferEventArgs transfer in transferResult.Transfers) { Console.WriteLine("Upload of {0} succeeded", transfer.FileName); } } Console.WriteLine("Upload Completed."); } catch (Exception e) { Console.WriteLine("Error: {0}", e); } } } |