Imagine que deseo crear (o sobrescribir) el siguiente archivo: - C:\Temp\Bar\Foo\Test.txt
Usando el método File.Create (..) , esto puede hacerlo.
PERO, si no tengo ninguna de las siguientes carpetas (de esa ruta de ejemplo, arriba)
- Temperatura
- Bar
- Foo
entonces recibo una DirectoryNotFoundException lanzada.
Entonces ... dada una ruta, ¿cómo podemos crear recursivamente todas las carpetas necesarias para crear el archivo ... para esa ruta? Si existen carpetas Temp o Bar, pero Foo no ... entonces eso también se crea.
Para simplificar, supongamos que no hay problemas de seguridad: todos los permisos están bien, etc.
c#
.net
file-access
Pure.Krome
fuente
fuente

Respuestas:
Vea esta página de MSDN .
Espero que ayude!
fuente
Directory.CreateDirectorysin elDirectory.Existscheque primero; no se lanzará si el directorio ya está allí.Path.GetDirectoryName(string path)de obtener el directorio de su ruta completapathno debe contener el nombre del archivo. Entonces, usar el ejemplo del OPpathdebería serC:\Temp\Bar\Foo. Después de llamarDirectory.CreateDirectory(path);, aún debe llamarFile.Create("C:\Temp\Bar\Foo\Test.txt");para crear el archivo.Para resumir lo que se ha comentado en otras respuestas:
Directory.CreateDirectorycreará los directorios de forma recursiva y si el directorio ya existe, regresará sin un error.Si no ha pasado a ser un archivo
FooenC:\Temp\Bar\Foouna excepción será lanzada.fuente
Use Directory.CreateDirectory antes de crear el archivo. Crea la carpeta recursivamente para ti.
fuente
Crea todos los directorios y subdirectorios según lo especificado por la ruta.
entonces puedes crear un archivo.
fuente
Deberá verificar ambas partes de la ruta (directorio y nombre de archivo) y crear cada una si no existe.
Use
File.ExistsyDirectory.Existspara averiguar si existen.Directory.CreateDirectorycreará la ruta completa para usted, por lo que solo necesita llamarlo una vez si el directorio no existe, simplemente cree el archivo.fuente
Debe usar Directory.CreateDirectory.
http://msdn.microsoft.com/en-us/library/54a0at6s.aspx
fuente
Desea Directory.CreateDirectory ()
Aquí hay una clase que uso (convertida a C #) que si le pasa un directorio de origen y un destino, copiará todos los archivos y subcarpetas de ese directorio a su destino:
}
fuente
using Microsoft.VisualBasic;¡Mal!Asumir que su ensamblado / exe tiene permiso de FileIO es en sí mismo, bueno, no está bien. Es posible que su aplicación no se ejecute con derechos de administrador. Es importante tener en cuenta la seguridad de acceso al código y solicitar permisos Código de muestra:
Comprender la seguridad de acceso al código .NET
¿Es "Code Access Security" de algún uso del mundo real?
fuente
Sé que hay otras respuestas aquí, pero ninguna de ellas no está lo suficientemente completa, el siguiente código creará directorios (si no existe) y luego copiará los archivos .
fuente