2009-08-24 12 views
15

No puedo evitar esto. Puedo crear un archivo con File.Create ... File.CrateText y así sucesivamente, solo si la ruta existe. Si no lo hace, el archivo no será escrito y devuelve un error. ¿Cómo creo el camino?Creando un archivo que la ruta de acceso no existe?

+1

posible duplicado de [¿Cómo crear múltiples directorios a partir de una sola ruta completa en C#?] (http://stackoverflow.com/questions/2134392/how-to-create-multiple -directories-from-a-single-full-path-in-c) –

Respuesta

29

Trate

Directory.CreateDirectory("C:\MyApp\MySubDir\Data") 

http://www.devx.com/vb2themax/Tip/18678

+0

Como es muy probable que esta publicación resuelva su problema aquí, la información adicional de MSDN: http://msdn.microsoft.com/en-us/library/as2f1fez.aspx – Bdiem

+1

¿Y cómo comprobamos si existe la ruta? o simplemente llamamos a esta función. –

+9

¡LEA! MSDN dice: si la carpeta ya existe, CreateDirectory no hace nada. – Bdiem

4

Usted tendrá que crear el directorio primero. Creará todos los subdirectorios que no existen dentro de la ruta que lo envía. Es una funcionalidad bastante poderosa.

Directory.CreateDirectory(filePath); 

Si no sabe si el directorio existe o no, puede usar Directory.Exists. Pero no para este caso ya que sería inútil. MSDN afirma que CreateDirectory no hace nada si el directorio existe actualmente. Pero si quería comprobar existencia del directorio por otra razón que puede utilizar:

if(Directory.Exists(folder) == false) 
    { 
    //do stuff 
    } 
1
Directory.CreateDirectory("path"); 
10

Teniendo en cuenta que usted tiene la ruta completa (Carpeta + Nombre de archivo), el siguiente código para hacer de su directorio requerido existe ruta (si no existe ya)

 FileInfo fileInfo = new FileInfo(fileFullPath); 

     if (!fileInfo.Exists) 
      Directory.CreateDirectory(fileInfo.Directory.FullName); 


     //create the file ... 
1

a continuación también debería funcionar

FileInfo fileInfo = new FileInfo(fileFullPath); 
    if (!fileInfo.Directory.Exists) fileInfo.Directory.Create() 

trabajo sobre directorio de información de archivo, en lugar de la clase de directorio estático

Cuestiones relacionadas