ComponentPro UltimateSftp

      UploadAsync(String, String, Boolean, FileOverwriteMode, ExtendedAsyncCompletedEventHandler<FileSystemTransferStatistics>, Object) Method

      See AlsoMembers Options: Show AllLanguage Filter: AllSend comments on this topic to ComponentPro
      Asynchronously uploads files from the specified local directory to the remote directory. This method only uploads the items in the specified directory if the localPath parameter does not end with a directory separator (e.g. '\' or '/'). To also create the directory in the destination, add a directory separator character at the end of that parameter.

      Syntax

      public Task<FileSystemTransferStatistics> UploadAsync(
         string localPath, 
         string remotePath, 
         bool recursive, 
         FileOverwriteMode fileExistsAction, 
         ExtendedAsyncCompletedEventHandler<FileSystemTransferStatistics> callback, 
         object userState = null
      )

      Parameters

      localPath
      The path and name of the local directory where the files will be uploaded to the server. This parameter can include filtering masks to limit the files that are uploaded. For example, if ""(empty string) is specified, the entire contents of the current folder will be uploaded. If "*.txt" is used, all the files in the current folder that have the .TXT extension will be uploaded. If "c:\mydir\*.dat;*.cs,*.vb" is used (masks are delimited by ',', ';', and '|' characters), files with the .DAT, .CS, or .VB extension in "c:\mydir" will be uploaded. If no masks specified, the whole content of the local directory should be uploaded. If this value ends with a directory separator like '/' or '\', the containing directory is to be uploaded. For example, if "c:\folder\" is used, files and subdirectories of "folder" directory and itself are uploaded; the destination directory contains "folder" directory and its contents. Attention: some servers may be case-sensitive!
      remotePath
      The path of the remote directory to store uploaded files.
      recursive
      Indicates whether all files and subdirectories will be uploaded to the server.
      fileExistsAction
      Specifies the action taken on existing files.
      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");
      
          // ... 
       
          TransferOptions opt = new TransferOptions();
          opt.CreateEmptyDirectories = OptionValue.No; // Empty dirs will not be created. 
       
          // Upload all files and subdirectories in local folder 'c:\temp' to the remote dir '/temp' 
          await client.UploadAsync("c:\\temp", "/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");
      
          // ... 
       
          TransferOptions opt = new TransferOptions();
          opt.CreateEmptyDirectories = OptionValue.No; // Empty dirs will not be created. 
       
          // Upload all files and subdirectories in local folder 'c:\temp' to the remote dir '/temp' 
          client.UploadAsync("c:\\temp", "/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