using System; namespace Developpez.Dotnet.System { /// /// Représente la méthode qui gère l'évènement ProgressChanged de la classe FileOperationBase /// /// Source de l'évènement /// Données de l'évènement public delegate void FileOperationProgressEventHandler(object sender, FileOperationProgressEventArgs e); /// /// Types d'opération de fichier /// public enum FileOperationType { /// /// Déplacement de fichier /// Move, /// /// Copie de fichier /// Copy } /// /// Actions possibles à effectuer lorsque l'opération de copie /// ou de déplacement de fichier signale sa progression /// public enum FileOperationProgressAction { /// /// Continuer l'opération normalement /// Continue = 0, /// /// Annuler l'opération. Le fichier de destination est supprimé. /// Cancel = 1, /// /// Arrête l'opération. Le fichier de destination est conservé. /// Stop = 2, /// /// Continue l'opération, mais arrête de signaler la progression /// Quiet = 3 } /// /// Fournit des données pour l'évènement ProgressChanged de la classe FileOperationBase. /// public class FileOperationProgressEventArgs : EventArgs { internal FileOperationProgressEventArgs( FileOperationType operationType, string source, string destination, long transferredBytes, long totalBytes, TimeSpan elapsed, long currentSpeed) { OperationType = operationType; Source = source; Destination = destination; TransferredBytes = transferredBytes; TotalBytes = totalBytes; Elapsed = elapsed; CurrentSpeed = currentSpeed; Action = FileOperationProgressAction.Continue; } /// /// Type d'opération /// public FileOperationType OperationType { get; private set; } /// /// Fichier source /// public string Source { get; private set; } /// /// Fichier de destination /// public string Destination { get; private set; } /// /// Nombre d'octets déjà transférés /// public long TransferredBytes { get; private set; } /// /// Nombre total d'octets à transférer /// public long TotalBytes { get; private set; } /// /// Temps écoulé depuis le début de l'opération /// public TimeSpan Elapsed { get; set; } /// /// Vitesse de transfert actuelle en octets par seconde /// public long CurrentSpeed { get; set; } /// /// Renvoie le pourcentage du tranfert déjà effectué /// public double PercentDone { get { return 100.0 * TransferredBytes / TotalBytes; } } /// /// Renvoie ou définit une valeur indiquand comment l'opération doit se poursuivre. /// public FileOperationProgressAction Action { get; set; } } }