public event ExtendedAsyncCompletedEventHandler<TResult> GetDirectorySizeCompleted
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); }
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); }