ComponentPro UltimateSftp

      GetDirectorySizeCompleted Event

      See AlsoMembers Options: Show AllLanguage Filter: AllSend comments on this topic to ComponentPro
      Occurs when an asynchronous GetDirectorySizeAsync operation completes.

      Syntax

      public event ExtendedAsyncCompletedEventHandler<TResult> GetDirectorySizeCompleted

      Examples

      FTP Examples

      Shows how to use GetDirectorySizeAsync method to asynchronously calculate total size of a directory (Task-based approach).

      using System;
      using ComponentPro.IO;
      using ComponentPro.Net;
      using ComponentPro;
      
      ...
      
      static async void Main()
      {
          // Create a new class instance. 
          Ftp client = new Ftp();
      
          // Connect to the FTP server. 
          client.Connect("myserver");
      
          // Authenticate. 
          client.Authenticate("userName", "password");
      
          // ... 
       
          // Calculate total size of an entire directory. 
          long totalSize = await client.GetDirectorySizeAsync("/myfolder", true, new NameSearchCondition("*.*"));
      
          // ... 
       
          Console.WriteLine("Calculate total size for all files: " + FormatSize(totalSize));
      
          // Disconnect. 
          client.Disconnect();
      }
      
      /// <summary> 
      /// Returns a formatted file size in bytes, kbytes, or mbytes. 
      /// </summary> 
      /// <param name="size">The input file size.</param> 
      /// <returns>The formatted file size.</returns> 
      public static string FormatSize(long size)
      {
          if (size < 1024)
              return size + " B";
          if (size < 1024 * 1024)
              return string.Format("{0:#.#} KB", size / 1024.0f);
          return size < 1024 * 1024 * 1024 ? string.Format("{0:#.#} MB", size / 1024.0f / 1024.0f) : string.Format("{0:#.#} GB", size / 1024.0f / 1024.0f / 1024.0f);
      }

      Shows how to use GetDirectorySizeAsync method to asynchronously calculate total size of a directory (Event-based approach).

      using System;
      using System.ComponentModel;
      using ComponentPro.IO;
      using ComponentPro.Net;
      using ComponentPro;
      
      ...
      
      static void Main()
      {
          // Create a new class instance. 
          Ftp client = new Ftp();
      
          // Connect to the FTP server. 
          client.Connect("myserver");
      
          // Authenticate. 
          client.Authenticate("userName", "password");
      
          // ... 
       
          // Register an event handler. 
          client.GetDirectorySizeCompleted += client_GetDirectorySizeCompleted;
      
          // Calculate total size of an entire directory. 
          client.GetDirectorySizeAsync("/myfolder", true, new NameSearchCondition("*.*"));
      
          // ... 
       
          // Disconnect. 
          client.Disconnect();
      }
      
      static void client_GetDirectorySizeCompleted(object sender, ExtendedAsyncCompletedEventArgs<long> e)
      {
          // Ftp client = (Ftp)sender; 
          if (e.Error != null)
          {
              Console.WriteLine("Error: " + e.Error.ToString());
          }
          else 
          {
              long totalSize = e.Result;
              Console.WriteLine("Calculate total size for all files: " + FormatSize(totalSize));
          }       
      }
      
      /// <summary> 
      /// Returns a formatted file size in bytes, kbytes, or mbytes. 
      /// </summary> 
      /// <param name="size">The input file size.</param> 
      /// <returns>The formatted file size.</returns> 
      public static string FormatSize(long size)
      {
          if (size < 1024)
              return size + " B";
          if (size < 1024 * 1024)
              return string.Format("{0:#.#} KB", size / 1024.0f);
          return size < 1024 * 1024 * 1024 ? string.Format("{0:#.#} MB", size / 1024.0f / 1024.0f) : string.Format("{0:#.#} GB", size / 1024.0f / 1024.0f / 1024.0f);
      }

      SFTP Examples

      Shows how to use GetDirectorySizeAsync method to asynchronously calculate total size of a directory (Task-based approach).

      using System;
      using ComponentPro.IO;
      using ComponentPro.Net;
      using ComponentPro;
      
      ...
      
      static async void Main()
      {
          // Create a new class instance. 
          Sftp client = new Sftp();
      
          // Connect to the SFTP server. 
          client.Connect("myserver");
      
          // Authenticate. 
          client.Authenticate("userName", "password");
      
          // ... 
       
          // Calculate total size of an entire directory. 
          long totalSize = await client.GetDirectorySizeAsync("/myfolder", true, new NameSearchCondition("*.*"));
      
          // ... 
       
          Console.WriteLine("Calculate total size for all files: " + FormatSize(totalSize));
      
          // Disconnect. 
          client.Disconnect();
      }
      
      /// <summary> 
      /// Returns a formatted file size in bytes, kbytes, or mbytes. 
      /// </summary> 
      /// <param name="size">The input file size.</param> 
      /// <returns>The formatted file size.</returns> 
      public static string FormatSize(long size)
      {
          if (size < 1024)
              return size + " B";
          if (size < 1024 * 1024)
              return string.Format("{0:#.#} KB", size / 1024.0f);
          return size < 1024 * 1024 * 1024 ? string.Format("{0:#.#} MB", size / 1024.0f / 1024.0f) : string.Format("{0:#.#} GB", size / 1024.0f / 1024.0f / 1024.0f);
      }

      Shows how to use GetDirectorySizeAsync method to asynchronously calculate total size of a directory (Event-based approach).

      using System;
      using System.ComponentModel;
      using ComponentPro.IO;
      using ComponentPro.Net;
      using ComponentPro;
      
      ...
      
      static void Main()
      {
          // Create a new class instance. 
          Sftp client = new Sftp();
      
          // Connect to the SFTP server. 
          client.Connect("myserver");
      
          // Authenticate. 
          client.Authenticate("userName", "password");
      
          // ... 
       
          // Register an event handler. 
          client.GetDirectorySizeCompleted += client_GetDirectorySizeCompleted;
      
          // Calculate total size of an entire directory. 
          client.GetDirectorySizeAsync("/myfolder", true, new NameSearchCondition("*.*"));
      
          // ... 
       
          // Disconnect. 
          client.Disconnect();
      }
      
      static void client_GetDirectorySizeCompleted(object sender, ExtendedAsyncCompletedEventArgs<long> e)
      {
          // Sftp client = (Sftp)sender; 
          if (e.Error != null)
          {
              Console.WriteLine("Error: " + e.Error.ToString());
          }
          else 
          {
              long totalSize = e.Result;
              Console.WriteLine("Calculate total size for all files: " + FormatSize(totalSize));
          }       
      }
      
      /// <summary> 
      /// Returns a formatted file size in bytes, kbytes, or mbytes. 
      /// </summary> 
      /// <param name="size">The input file size.</param> 
      /// <returns>The formatted file size.</returns> 
      public static string FormatSize(long size)
      {
          if (size < 1024)
              return size + " B";
          if (size < 1024 * 1024)
              return string.Format("{0:#.#} KB", size / 1024.0f);
          return size < 1024 * 1024 * 1024 ? string.Format("{0:#.#} MB", size / 1024.0f / 1024.0f) : string.Format("{0:#.#} GB", size / 1024.0f / 1024.0f / 1024.0f);
      }

      Framework

      .NET Compact Framework.NET Compact Framework

      Supported version: 2.0, 3.5, and 3.9
      Assembly: ComponentPro.FileSystem.CF (in ComponentPro.FileSystem.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.FileSystem (in ComponentPro.FileSystem.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.FileSystem.WinPcl (in ComponentPro.FileSystem.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.FileSystem.Uwp (in ComponentPro.FileSystem.Uwp.dll)

      Xamarin AndroidXamarin Android

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

      Xamarin MacXamarin Mac

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

      Xamarin iOSXamarin iOS

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

      See Also