J'ai une collection de fichiers avec des chemins complets (root/test/thing1/thing2/file.txt). Je veux foreach
sur cette collection et dépose le fichier à l'emplacement défini dans le chemin, cependant, si certains répertoires n'existent pas, je veux qu'ils soient créés automatiquement. Mon programme a un "emplacement de dépôt" par défaut, tel que z:/
. L'emplacement de dépôt commence vide, donc dans mon exemple ci-dessus, le premier élément devrait créer automatiquement les répertoires nécessaires pour créer z:/root/test/thing1/thing2/file.txt
. Comment puis-je faire ceci?Créer automatiquement des répertoires à partir de chemins longs
10
A
Répondre
16
foreach (var relativePath in files.Keys)
{
var fullPath = Path.Combine(defaultLocation, relativePath);
var directory = Path.GetDirectoryName(fullPath);
Directory.CreateDirectory(directory);
saveFile(fullPath, files[relativePath]);
}
où les fichiers sont IDictionary<string, object>
.
10
string somepath = @"z:/root/test/thing1/thing2/file.txt";
System.IO.Directory.CreateDirectory(System.IO.Path.GetDirectoryName((somepath));
3
Vérifiez IO namespace (Directory, Path), je pense qu'ils vont vous aider à
using System.IO
Vérifiez ensuite il ..
string fileName [email protected]"d:/root/test/thing1/thing2/file.txt";
string directory = Path.GetDirectoryName(fileName);
if (!Directory.Exists(directory))
Directory.CreateDirectory(directory);
7
Directory.CreateDirectory("/root/...")
Crée tous les répertoires et sous-répertoires le chemin spécifié
1
string filename = "c:\\temp\\wibble\\wobble\\file.txt";
string dir = Path.GetDirectoryName(filename);
if (!Directory.Exists(dir))
{
Directory.CreateDirectory(dir);
}
File.Create(filename);
avec traitement des exceptions approprié, bien sûr.
0
J'ai trouvé que définir "l'emplacement par défaut" au début de l'exécution était utile et réduisait un peu de code redondant (par exemple, Path.Combine(defaultLocation, relativePath)
).
Exemple:
var defaultLocation = "z:/";
Directory.SetCurrentDirectory(defaultLocation);
Directory.SetCurrentDirectory(AppContext.BaseDirectory);
Questions connexes
- 1. Convertir des chemins courts (8.3) en longs?
- 2. Configuration des répertoires et des chemins Smarty
- 3. java: créer des répertoires
- 4. Création d'une arborescence de répertoires à partir d'une liste de chemins de fichier
- 5. C# Suppression d'un dossier ayant de longs chemins
- 6. IIS web deploy - créer des répertoires virtuels?
- 7. C# appelle l'API Win32 pour les chemins de fichier longs?
- 8. Apache servant des fichiers à partir de répertoires inexistants
- 9. Création de répertoires à partir du nom de fichier?
- 10. Bibliothèque de fichiers qui aide à créer des chemins
- 11. Comment créer des répertoires de projet normaux à partir de la version svn?
- 12. C++ en utilisant des espaces de noms pour éviter les longs chemins
- 13. Comment définir automatiquement les chemins de génération dans Eclipse
- 14. ActionScript Remplacement des longs chemins de la liste d'affichage dans le code?
- 15. Méthode .NET Framework pour créer rapidement des répertoires
- 16. Comment obtenir des fichiers à partir de répertoires en Python
- 17. Afficher des images à partir de plusieurs répertoires
- 18. Liste des répertoires sous Linux à partir de C
- 19. Créer des rails locale yaml fichier automatiquement?
- 20. Comment créer des répertoires virtuels en PHP?
- 21. Comment créer des répertoires récursivement dans ruby?
- 22. Résoudre des chemins relatifs en dehors des répertoires standard (applicationDirectory, desktopDirectory, etc.)
- 23. C# supprimer des chemins redondants à partir d'une liste
- 24. Remplir automatiquement les répertoires en tapant
- 25. Quel est le problème avec mon appel WINAPI pour gérer les chemins d'accès longs?
- 26. Créer automatiquement des diagrammes UML à partir de Visual Studio 2008
- 27. Liste tous les fichiers dans un répertoire avec abosolute chemins (à l'exclusion des répertoires)
- 28. PHP - créer un groupe de répertoires 0-z et sous-répertoires 0-z à partir d'un tableau
- 29. Comment créer rapidement des alias avec des chemins absolus?
- 30. Multiplier deux longs longs C
Convenu, pas besoin de vérifier si le répertoire existe comme il le fait en interne. – Squirrel