ComponentPro UltimateSftp

      UploadAsync(IEnumerable, String, TransferOptions) 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 ExtendedAsyncResult<FileSystemTransferStatistics> UploadAsync(
         IEnumerable localFilesToTransfer, 
         string remotePath, 
         TransferOptions options
      )

      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.

      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;
      
      ...
      
      static async void Main2()
      {
          // Create a new class instance. 
          Sftp client = new Sftp();
      
          // Connect to the SFTP server. 
          client.Connect("localhost");
      
          // Authenticate. 
          client.Authenticate("test", "test");
      
          // ... 
       
          // The UploadCompleted event is raised when the operation completes. 
          client.UploadCompleted += callback2;
      
          TransferOptions opt = new TransferOptions();
          opt.CreateEmptyDirectories = OptionValue.No; // Empty dirs will not be created. 
       
          string[] filesAndFoldersToUpload = new string[]
                                                     {
                                                         "c:\\content1", // folder 
                                                         "c:\\content2", // folder 
                                                         "c:\\dir\\file1", // file 
                                                         "c:\\file2"       // file                                              
                                                     };
      
          // Upload selected files and directories to the remote dir '/temp' 
          await client.UploadAsync(filesAndFoldersToUpload, "/temp", opt, "user state");
      
          // ... 
       
          // Disconnect. 
          client.Disconnect();
      }
      
      static void callback2(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 Main()
      {
          // Create a new class instance. 
          Sftp client = new Sftp();
      
          // Connect to the SFTP server. 
          client.Connect("localhost");
      
          // Authenticate. 
          client.Authenticate("test", "test");
      
          // ... 
       
          // Register an event handler. 
          client.UploadCompleted += client_UploadCompleted;
      
          string[] filesAndFoldersToUpload = new string[]
                                                     {
                                                         "c:\\content1", // folder 
                                                         "c:\\content2", // folder 
                                                         "c:\\dir\\file1", // file 
                                                         "c:\\file2"       // file                                              
                                                     };
      
          // Upload selected files and directories to the remote dir '/temp' 
          client.UploadAsync(filesAndFoldersToUpload, "/temp", new TransferOptions());
      
          // ... 
       
          // Disconnect. 
          client.Disconnect();
      }
      
      private static void client_UploadCompleted(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)

      See Also