Quelle est la meilleure façon de copier récursivement le contenu d'un dossier dans un autre dossier en utilisant C# et ASP.NET?Quel est le meilleur moyen de copier récursivement le contenu en C#?
Répondre
Eh bien, vous pouvez essayer cette
DirectoryInfo sourcedinfo = new DirectoryInfo(@"E:\source");
DirectoryInfo destinfo = new DirectoryInfo(@"E:\destination");
copy.CopyAll(sourcedinfo, destinfo);
et c'est la méthode qui font tout le travail:
public void CopyAll(DirectoryInfo source, DirectoryInfo target)
{
try
{
//check if the target directory exists
if (Directory.Exists(target.FullName) == false)
{
Directory.CreateDirectory(target.FullName);
}
//copy all the files into the new directory
foreach (FileInfo fi in source.GetFiles())
{
fi.CopyTo(Path.Combine(target.ToString(), fi.Name), true);
}
//copy all the sub directories using recursion
foreach (DirectoryInfo diSourceDir in source.GetDirectories())
{
DirectoryInfo nextTargetDir = target.CreateSubdirectory(diSourceDir.Name);
CopyAll(diSourceDir, nextTargetDir);
}
//success here
}
catch (IOException ie)
{
//handle it here
}
}
J'espère que cela vous aidera :)
Il suffit d'utiliser Microsoft.VisualBasic.FileIO.FileSystem.CopyDirectory
dans Microsoft.VisualBasic.dll
Assemblée.
Ajouter une référence à Microsoft.VisualBasic
Microsoft.VisualBasic.FileIO.FileSystem.CopyDirectory(source, destination);
semble utile. comment est venue cette classe Directory n'a pas cette méthode ?? –
Vous pouvez utiliser SearchOption.AllDirectories
pour rechercher récursive vers le bas des dossiers, il vous suffit de créer les répertoires avant de copier ...
// string source, destination; - folder paths
int pathLen = source.Length + 1;
foreach (string dirPath in Directory.GetDirectories(source, "*", SearchOption.AllDirectories))
{
string subPath = dirPath.Substring(pathLen);
string newpath = Path.Combine(destination, subPath);
Directory.CreateDirectory(newpath);
}
foreach (string filePath in Directory.GetFiles(source, "*.*", SearchOption.AllDirectories))
{
string subPath = filePath.Substring(pathLen);
string newpath = Path.Combine(destination, subPath);
File.Copy(filePath, newpath);
}
brillant! le seul truc que je devais faire est int pathLen = source.Length + 1 – nabeelfarid
A la vôtre, tweak fait :-) – Keith
- 1. Quel est le meilleur moyen de copier une liste?
- 2. Quel est le meilleur moyen de faire throbber en C#?
- 3. Quel est le meilleur moyen de gérer QUERY_STRING en PHP?
- 4. En C#, quel est le meilleur moyen de déterminer si une base de données est opérationnelle?
- 5. Quel est le meilleur moyen de copier une base de données?
- 6. Quel est le meilleur moyen de déployer des applications Web?
- 7. Quel est le meilleur moyen de comparer plusieurs propriétés javabéennes?
- 8. Quel est le meilleur moyen de fermer un thread WCF?
- 9. Quel est le meilleur moyen de vérifier les fuites de mémoire en C++?
- 10. Quel est le meilleur moyen de redimensionner un objet BitmapData?
- 11. Quel est le meilleur moyen de communication interprocesseur sous Linux?
- 12. NSMutableArray. Quel est le moyen le plus rapide pour le convertir en un tableau C simple?
- 13. Quel est le meilleur moyen de fusionner deux objets pendant l'exécution en utilisant C#?
- 14. Quel est le meilleur moyen de retourner deux listes en C#?
- 15. Est-ce le meilleur moyen de réécrire le contenu d'un fichier en Java?
- 16. Quel est le moyen le meilleur et le plus rapide pour écrire dans le fichier Excel en utilisant C#?
- 17. Quel est le meilleur moyen de mettre en cache des images sur mon site Web?
- 18. Comment puis-je copier récursivement le contenu du répertoire en utilisant Perl?
- 19. Quel est le meilleur moyen de réduire les lignes d'un SELECT en une chaîne?
- 20. Quel est le moyen le plus rapide de copier mon tableau?
- 21. Quel est le meilleur blog de XNA?
- 22. En R, quel est le meilleur moyen d'agréger des données de type chaîne?
- 23. Quel est le meilleur moyen de renvoyer plusieurs valeurs d'une fonction en Python?
- 24. Quel est le meilleur moyen d'éliminer le spam de blog ou de commentaire
- 25. Quel est le meilleur wrapper C# disponible gratuitement pour BITS?
- 26. Quel est le meilleur moyen d'échapper à des chaînes Python en PHP?
- 27. Quel est le meilleur moyen de résoudre les conflits de noms en JavaScript?
- 28. Quel est le meilleur moyen de synchroniser 2 structures de données en PHP?
- 29. Quel est le meilleur profileur C++ gratuit pour Windows?
- 30. Le meilleur moyen de multi-thread?
Code Grand il y a un chose que je voudrais changer: // vérifier si le répertoire cible existe if (Directory.Exists (target.FullName) == false) { Directory.CreateDirectory (targ et.FullName); } vous pouvez juste vous l'objet DirectoryInfo que vous avez déjà: si (! Target.Exists) { target.Create(); } – greektreat
A travaillé OK pour moi avec aucun changement. –
quelques fois j'ai eu 'target.Exists' ne fonctionne pas correctement où' Directory.Exists (target.FullName) 'a fait ... –