ComponentPro UltimateSftp

      Upload(String, Boolean, IEnumerable, String, TransferOptions, Int32, Boolean) Method

      See AlsoMembers Options: Show AllLanguage Filter: AllSend comments on this topic to ComponentPro
      Uploads the specified local file or directory to the specified remote directory on the server simultaneously using multiple threads.

      Syntax

      public FileSystemTransferStatistics Upload(
         string localPath, 
         bool includeBaseDirectory, 
         IEnumerable localFilesToTransfer, 
         string remotePath, 
         TransferOptions options, 
         int threads, 
         bool waitForThreads
      )

      Parameters

      localPath
      The path and name of the local directory where the files will be uploaded to the server. When the parameter localFilesToTransfer is a null reference, 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. The final search condition depends on the SearchCondition and SearchConditionCombinedWithMasksInSourcePath settings of the options parameter. Attention: some servers may be case-sensitive!
      includeBaseDirectory
      Indicates whether the containing directory should also be created in the destination directory. For example: Upload("MyDir/*.txt", true, null, "/RemoteDir" ...) - if this parameter is true, "MyDir" is created in "RemoteDir" and all files and dirs within "MyDir" are copied to "RemoteDir/MyDir"; otherwise false, "MyDir" is not created in "RemoteDir", only files and subdirectories within "MyDir" are copied to "RemoteDir".
      localFilesToTransfer
      The list of files and directories to upload, or a null reference to upload files in the localPath that match the search condition specified in the options parameter. This list must comprise file paths in String and/or FileInfoBase instances. (e.g. string[] files = new string[] {"file1", "file2", "dir1" } or object[] files = new string[] {"file1", fileInfo1, fileInfo2 })
      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.
      threads
      The number of threads used for the simultaneous file transfer.
      waitForThreads
      A boolean value indicating whether to wait for the completion of all threads. If this parameter is true, this method blocks the caller process's execution until all threads have completed; otherwise, this method immediately returns the control to the caller process.

      Return Value

      A FileSystemTransferStatistics object that contains transfer statictics and a list of processed files and directories.

      Examples

      Use 50 threads to upload files simultaneously from the local disk.

      using System;
      using ComponentPro.IO;
      using ComponentPro.Net;
      
      ...
      
      using (Sftp ftp = new Sftp())
      {
          // Connect to the SFTP server. 
          ftp.Connect("localhost");
      
          // Authenticate. 
          ftp.Authenticate("test", "test");
      
          ftp.Upload(
              "C:\\data", // The local directory. 
              false, // The base directory is not include - only files and subdirectories in "c:\data" will be copied. 
              null,
              "/dest", // The remote directory on the SFTP server. 
              new TransferOptions(),
              50, // Use 50 threads 
              true // Wait until all the threads complete. 
              );
      
          // Upload CS and VB files only. 
          ftp.Upload(
              "C:\\data\\*.cs;*.vb", // The local directory. 
              false, // The base directory is not include - only files and subdirectories in "c:\data" will be copied. 
              null,
              "/dest", // The remote directory on the SFTP server. 
              new TransferOptions(),
              50, // Use 50 threads 
              true // Wait until all the threads complete. 
              );
      
      
          string[] filesAndFoldersToUpload = new string[]
                                                 {
                                                     "content1", // folder 
                                                     "content2", // folder 
                                                     "dir\\file1", // file 
                                                     "file2"       // file                                              
                                                 };
      
          ftp.Upload(
              "C:\\data", // The local directory. 
              false, // The base directory is not include 
              filesAndFoldersToUpload, // only files and folders in this list in "C:\data" folder will be uploaded. 
              "/dest", // The remote directory on the SFTP server. 
              new TransferOptions(),
              50, // Use 50 threads 
              true // Wait until all the threads complete. 
              );
      }

      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