WinSCP ( WinSCP .NET ) FTP Upload 方法

 
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);
         }
      }
   }