Tengo una colección de archivos con rutas totalmente calificadas (root/test/thing1/thing2/file.txt). Deseo foreach
sobre esta colección y colocar el archivo en la ubicación definida en la ruta, sin embargo, si no existen ciertos directorios, quiero que se creen de manera excelente automáticamente. Mi programa tiene una "ubicación de colocación" predeterminada, como z:/
. La "ubicación de colocación" comienza vacía, por lo que en mi ejemplo anterior, el primer elemento debería crear automáticamente los directorios necesarios para crear z:/root/test/thing1/thing2/file.txt
. ¿Cómo puedo hacer esto?Crear directorios automáticamente desde rutas largas
10
A
Respuesta
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]);
}
donde los archivos son IDictionary<string, object>
.
10
string somepath = @"z:/root/test/thing1/thing2/file.txt";
System.IO.Directory.CreateDirectory(System.IO.Path.GetDirectoryName((somepath));
3
Comprobar IO namespace (Directory, Path), creo que van a ayudarle a
using System.IO
y comprobar su valor ..
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/...")
Crea todos los directorios y subdirectorios la ruta especificada
1
string filename = "c:\\temp\\wibble\\wobble\\file.txt";
string dir = Path.GetDirectoryName(filename);
if (!Directory.Exists(dir))
{
Directory.CreateDirectory(dir);
}
File.Create(filename);
con manejo de excepciones adecuado, por supuesto.
0
He encontrado que establecer la "ubicación predeterminada" al inicio de la ejecución es útil y reducir un poco el código redundante (por ejemplo, Path.Combine(defaultLocation, relativePath)
).
Ejemplo:
var defaultLocation = "z:/";
Directory.SetCurrentDirectory(defaultLocation);
Directory.SetCurrentDirectory(AppContext.BaseDirectory);
Cuestiones relacionadas
- 1. Guardar un archivo y crear directorios automáticamente
- 2. Rutas en Codeigniter - Automáticamente
- 3. Enrollar automáticamente las líneas largas en VIM
- 4. Implementación web de IIS: ¿crear directorios virtuales?
- 5. crear archivos, crear directorios recursivamente
- 6. C++ WinAPI: manejo de largas rutas de archivos/nombres
- 7. Android Issue Dibujando rutas largas en MapView usando XML Parsing
- 8. Python: Crear directorios
- 9. Crear Directorio + Sub-Directorios
- 10. Forma eficiente de crear rutas recursivas Python
- 11. Crear directorios que faltan en ftplib storbinary
- 12. Jade - Cargando plantillas desde diferentes directorios
- 13. usando "touch" para crear directorios?
- 14. Crear directorios usando make file
- 15. ¿Puede el nuevo archivo HTML5 manifest.cache contener rutas a directorios?
- 16. Vim: formateo automático de líneas largas largas
- 17. ¿Cómo crear directorios recursivamente en ruby?
- 18. Vim: Crear directorios principales en guardar
- 19. Crear javadoc con múltiples directorios src
- 20. crear cremallera - ignorar estructura de directorios
- 21. Crear directorios virtuales en IIS express
- 22. Crear directorios durante una copia usando IFileOperation
- 23. ¿Cómo crear directorios virtuales en PHP?
- 24. Crear una lista numerada automáticamente
- 25. ¿Cómo puedo crear un contenedor de rutas en Gradle?
- 26. Trabajando con rutas desde [[NSBundle mainBundle] resourcePath]
- 27. Construir un árbol JSON desde rutas materializadas
- 28. Conversión de rutas relativas a rutas absolutas
- 29. Cómo iterar sobre nombres de rutas largas con cualquier forma de la API de Windows
- 30. Formatear e indentar automáticamente fuente generada automáticamente desde Java
estuvo de acuerdo, no hay necesidad de comprobar si existe directorio que lo hace internamente. – Squirrel