Efficace de la copie de plusieurs fichiers
J'ai pour copier beaucoup de fichiers à partir d'un dossier à un autre. Actuellement, je suis à le faire de cette façon:
string[] files = Directory.GetFiles(rootFolder, "*.xml");
foreach (string file in files)
{
string otherFile = Path.Combine(otherFolder, Path.GetFileName(file));
File.Copy(file, otherFile);
}
Est la façon la plus efficace? Semble prendre âges.
EDIT: je suis vraiment se demander si il existe un moyen plus rapide de faire un lot de copie, au lieu de copier des fichiers individuels, mais je suppose que la réponse est non.
Vous devez vous connecter pour publier un commentaire.
Je ne peux pas penser à un moyen plus efficace de Fichier.La copie, il va directement à l'OS.
D'autre part, si elle prend autant de temps, je suggère fortement pour afficher une boîte de dialogue de progression - comme SHFileOperation le fait pour vous. Au moins vos utilisateurs savent ce qui se passe.
Vous pouvez utiliser le système d'exploitation pour déplacer les fichiers. C'est ce que des outils comme WinMerge faire. Vous cliquez sur le bouton "copier" dans votre application et il apparaît de la Windows boîte de dialogue de progression comme si vous aviez utilisé l'Explorateur d'organiser la copie. Ce fil qu'il décrit.
Récemment, j'ai mis en œuvre mes copies de fichiers à l'aide de filestreams en VB .NET:
Il semble rapide et un moyen très facile de mettre à jour la barre de progression (avec sizeCopied) et d'annuler le transfert de fichiers si nécessaire (avec IsCancelled).