ComponentPro UltimateSftp

      UploadAsync(IEnumerable, String, TransferOptions, ExtendedAsyncCompletedEventHandler<FileSystemTransferStatistics>, Object) Method

      See AlsoMembers Options: Show AllLanguage Filter: AllSend comments on this topic to ComponentPro
      Asynchronously uploads local files or directories in the list to the specified remote directory.

      Syntax

      public Task<FileSystemTransferStatistics> UploadAsync(
         IEnumerable localFilesToTransfer, 
         string remotePath, 
         TransferOptions options, 
         ExtendedAsyncCompletedEventHandler<FileSystemTransferStatistics> callback, 
         object userState = null
      )

      Parameters

      localFilesToTransfer
      The list of files and directories to upload. This list can contain String and FileInfoBase objects (e.g. UploadAsync(new string[] {"c:\data\file1", "c:\text\doc.txt", "c:\dir1" }, ...) or Upload(new object[] {"file1", fileInfo1, fileInfo2 }, ...)). This cannot be null or empty.
      remotePath
      The path of the remote directory to store uploaded files.
      options
      The transfer options object which provides many settings to control the file transfer process.
      callback
      An optional asynchronous callback to be invoked when this operation completes. This parameter can be null.
      userState
      A user-provided object that identifies this particular asynchronous operation.

      Return Value

      An asynchronous reference to a FileSystemTransferStatistics object that contains transfer statictics and a list of processed files and directories.

      Examples

      Shows how to use UploadAsync method to asynchronously upload files (Task-based approach).

      using System;
      using ComponentPro.IO;
      using ComponentPro.Net;
      using ComponentPro;
      
      ...
      
      private async static void Main1()
      {
          // Create a new class instance. 
          Sftp client = new Sftp();
      
          // Connect to the SFTP server. 
          client.Connect("localhost");
      
          // Authenticate. 
          client.Authenticate("test", "test");
      
          // ... 
       
          string[] filesAndFoldersToUpload = new string[]
                                                     {
                                                         "c:\\content1", // folder 
                                                         "c:\\content2", // folder 
                                                         "c:\\dir\\file1", // file 
                                                         "c:\\file2"       // file                                              
                                                     };
      
          TransferOptions opt = new TransferOptions();
          opt.CreateEmptyDirectories = OptionValue.No; // Empty dirs will not be created. 
       
          // Upload selected files and directories to the remote dir '/temp' 
          await client.UploadAsync(filesAndFoldersToUpload, "/temp", opt, callback1, "user state");
      
          // ... 
       
          // Disconnect. 
          client.Disconnect();
      }
      
      private static void callback1(object sender, ExtendedAsyncCompletedEventArgs<FileSystemTransferStatistics> e)
      {
          // Sftp client = (Sftp)sender; 
          if (e.Error != null)
              Console.WriteLine("Error: " + e.Error.Message);
          else 
          {
              Console.WriteLine("Files uploaded: " + e.Result.FilesProcessed);
          }
      }

      Shows how to use UploadAsync method to asynchronously upload files (Event-based approach).

      using System;
      using ComponentPro.IO;
      using ComponentPro.Net;
      using ComponentPro;
      
      ...
      
      private static void Main1()
      {
          // Create a new class instance. 
          Sftp client = new Sftp();
      
          // Connect to the SFTP server. 
          client.Connect("localhost");
      
          // Authenticate. 
          client.Authenticate("test", "test");
      
          // ... 
       
          string[] filesAndFoldersToUpload = new string[]
                                                     {
                                                         "c:\\content1", // folder 
                                                         "c:\\content2", // folder 
                                                         "c:\\dir\\file1", // file 
                                                         "c:\\file2"       // file                                              
                                                     };
      
          TransferOptions opt = new TransferOptions();
          opt.CreateEmptyDirectories = OptionValue.No; // Empty dirs will not be created. 
       
          // Upload selected files and directories to the remote dir '/temp' 
          client.UploadAsync(filesAndFoldersToUpload, "/temp", opt, callback1, "user state");
      
          // ... 
       
          // Disconnect. 
          client.Disconnect();
      }
      
      private static void callback1(object sender, ExtendedAsyncCompletedEventArgs<FileSystemTransferStatistics> e)
      {
          // Sftp client = (Sftp)sender; 
          if (e.Error != null)
              Console.WriteLine("Error: " + e.Error.Message);
          else 
          {
              Console.WriteLine("Files uploaded: " + e.Result.FilesProcessed);
          }
      }

      Framework

      .NET Compact Framework.NET Compact Framework

      Supported version: 2.0, 3.5, and 3.9
      Assembly: ComponentPro.Sftp.CF (in ComponentPro.Sftp.CF.dll)

      .NET Framework.NET Framework

      Supported version: 2.0, 3.0, 3.5, 4.0, 4.5.x, 4.6.x and later
      Assembly: ComponentPro.Sftp (in ComponentPro.Sftp.dll)

      Portable Class Library for Windows Phone 8.1 and Windows 8.1 Store AppsPortable Class Library for Windows Phone 8.1 and Windows 8.1 Store Apps

      Supported version: 4.6.x and later
      Assembly: ComponentPro.Sftp.WinPcl (in ComponentPro.Sftp.WinPcl.dll)

      Universal Windows Platform (includes Windows 10 Mobile, Windows 10 Store Apps and Windows 10 IoT)Universal Windows Platform (includes Windows 10 Mobile, Windows 10 Store Apps and Windows 10 IoT)

      Supported version: 4.6.x and later
      Assembly: ComponentPro.Sftp.Uwp (in ComponentPro.Sftp.Uwp.dll)

      Xamarin AndroidXamarin Android

      Supported version: 2.3 and later
      Assembly: ComponentPro.Sftp.Android (in ComponentPro.Sftp.Android.dll)

      Xamarin MacXamarin Mac

      Supported version: 2.0.x and later
      Assembly: ComponentPro.Sftp.Mac (in ComponentPro.Sftp.Mac.dll)

      Xamarin iOSXamarin iOS

      Supported version: 5.1.x and later
      Assembly: ComponentPro.Sftp.iOS (in ComponentPro.Sftp.iOS.dll)

      See Also