C# copie efficacement le contenu du répertoire
Copier le contenu d'un répertoire entier est une tâche courante dans les applications, il est donc crucial de disposer d'une solution efficace et fiable.
Bien que les classes System.IO en C# autorisent les opérations sur les fichiers et les répertoires, il n'existe aucun moyen direct de copier un répertoire entier sans récursion. Cependant, il existe une manière plus élégante d'utiliser l'assembly Microsoft.VisualBasic.
La méthode CopyDirectory fournie par Microsoft.VisualBasic fournit un moyen efficace d'effectuer une copie de répertoire. Il vous permet de spécifier les dossiers source et de destination et gère l'ensemble du processus. Bien que cette méthode soit suffisante pour les scénarios de base, elle peut être considérée comme une solution de contournement.
L'extrait de code suivant fournit une solution plus complète et plus efficace :
<code class="language-csharp">private static void CopyFilesRecursively(string sourcePath, string targetPath) { //创建所有目录 foreach (string dirPath in Directory.GetDirectories(sourcePath, "*", SearchOption.AllDirectories)) { Directory.CreateDirectory(dirPath.Replace(sourcePath, targetPath)); } //复制文件并替换现有文件 foreach (string newPath in Directory.GetFiles(sourcePath, "*.*", SearchOption.AllDirectories)) { File.Copy(newPath, newPath.Replace(sourcePath, targetPath), true); } }</code>
Ce code parcourt récursivement le répertoire source, créant les sous-répertoires nécessaires dans le répertoire cible. Il copie ensuite chaque fichier, en remplaçant tous les fichiers existants par des fichiers du même nom. Cette méthode garantit que l'intégralité du contenu du répertoire est fidèlement copiée, ce qui en fait une solution plus polyvalente et plus fiable que la méthode CopyDirectory.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!