Directory.CreateDirectory Método

Definición

Crea todos los directorios de una ruta de acceso especificada.

Sobrecargas

CreateDirectory(String)

Crea todos los directorios y subdirectorios en la ruta de acceso especificada, a menos que ya existan.

CreateDirectory(String, UnixFileMode)

Crea todos los directorios y subdirectorios en la ruta de acceso especificada con los permisos especificados a menos que ya existan.

CreateDirectory(String, DirectorySecurity)

Crea todos los directorios en la ruta de acceso especificada, salvo que ya existan, aplicando la seguridad de Windows especificada.

CreateDirectory(String)

Source:
Directory.cs
Source:
Directory.cs
Source:
Directory.cs

Crea todos los directorios y subdirectorios en la ruta de acceso especificada, a menos que ya existan.

public:
 static System::IO::DirectoryInfo ^ CreateDirectory(System::String ^ path);
public static System.IO.DirectoryInfo CreateDirectory (string path);
static member CreateDirectory : string -> System.IO.DirectoryInfo
Public Shared Function CreateDirectory (path As String) As DirectoryInfo

Parámetros

path
String

Directorio que se va a crear.

Devoluciones

Un objeto que representa el directorio en la ruta de acceso especificada. Este objeto se devuelve sin importar si ya existe un directorio en la ruta especificada.

Excepciones

El directorio especificado por path es un archivo.

O bien

El nombre de la red es desconocido.

El llamador no dispone del permiso requerido.

Versiones de .NET Framework y .NET Core anteriores a 2.1: path es una cadena de longitud cero, contiene solo espacios en blanco o contiene uno o varios caracteres no válidos. Puede consultar los caracteres no válidos con el método GetInvalidPathChars().

O bien

path tiene como prefijo o contiene solamente un carácter de dos puntos (:).

path es null.

La ruta de acceso especificada, el nombre de archivo o ambos superan la longitud máxima definida por el sistema.

La ruta de acceso especificada no es válida (por ejemplo, está en una unidad no asignada).

path contiene un carácter de dos puntos (:) que no forma parte de una etiqueta de unidad de disco ("C:\").

Ejemplos

En el ejemplo siguiente se crea y se elimina el directorio especificado:

using namespace System;
using namespace System::IO;
int main()
{
   
   // Specify the directory you want to manipulate.
   String^ path = "c:\\MyDir";
   try
   {
      
      // Determine whether the directory exists.
      if ( Directory::Exists( path ) )
      {
         Console::WriteLine( "That path exists already." );
         return 0;
      }
      
      // Try to create the directory.
      DirectoryInfo^ di = Directory::CreateDirectory( path );
      Console::WriteLine( "The directory was created successfully at {0}.", Directory::GetCreationTime( path ) );
      
      // Delete the directory.
      di->Delete();
      Console::WriteLine( "The directory was deleted successfully." );
   }
   catch ( Exception^ e ) 
   {
      Console::WriteLine( "The process failed: {0}", e );
   }

}
using System;
using System.IO;

class Test
{
    public static void Main()
    {
        // Specify the directory you want to manipulate.
        string path = @"c:\MyDir";

        try
        {
            // Determine whether the directory exists.
            if (Directory.Exists(path))
            {
                Console.WriteLine("That path exists already.");
                return;
            }

            // Try to create the directory.
            DirectoryInfo di = Directory.CreateDirectory(path);
            Console.WriteLine("The directory was created successfully at {0}.", Directory.GetCreationTime(path));

            // Delete the directory.
            di.Delete();
            Console.WriteLine("The directory was deleted successfully.");
        }
        catch (Exception e)
        {
            Console.WriteLine("The process failed: {0}", e.ToString());
        }
        finally {}
    }
}
open System.IO

// Specify the directory you want to manipulate.
let path = @"c:\MyDir"

try
    // Determine whether the directory exists.
    if Directory.Exists path then
        printfn "That path exists already."
    else
        // Try to create the directory.
        let di = Directory.CreateDirectory path
        printfn $"The directory was created successfully at {Directory.GetCreationTime path}."

        // Delete the directory.
        di.Delete()
        printfn "The directory was deleted successfully."
with e ->
    printfn $"The process failed: {e}"
Imports System.IO

Public Class Test
    Public Shared Sub Main()
        ' Specify the directory you want to manipulate.
        Dim path As String = "c:\MyDir"

        Try
            ' Determine whether the directory exists.
            If Directory.Exists(path) Then
                Console.WriteLine("That path exists already.")
                Return
            End If

            ' Try to create the directory.
            Dim di As DirectoryInfo = Directory.CreateDirectory(path)
            Console.WriteLine("The directory was created successfully at {0}.", Directory.GetCreationTime(path))

            ' Delete the directory.
            di.Delete()
            Console.WriteLine("The directory was deleted successfully.")

        Catch e As Exception
            Console.WriteLine("The process failed: {0}.", e.ToString())
        End Try
    End Sub
End Class

Para crear el directorio C:\Users\User1\Public\Html cuando el directorio actual es C:\Users\User1, use cualquiera de las siguientes llamadas para asegurarse de que la barra diagonal inversa se interpreta correctamente:

Directory.CreateDirectory("Public\Html")
Directory.CreateDirectory("\Users\User1\Public\Html")
Directory.CreateDirectory("c:\Users\User1\Public\Html")
Directory.CreateDirectory("Public\\Html");
Directory.CreateDirectory("\\Users\\User1\\Public\\Html");
Directory.CreateDirectory("c:\\Users\\User1\\Public\\Html");
Directory::CreateDirectory("Public\\Html");
Directory::CreateDirectory("\\Users\\User1\\Public\\Html");
Directory::CreateDirectory("c:\\Users\\User1\\Public\\Html");

Comentarios

Se crean todos los directorios especificados en path , a menos que ya existan o a menos que alguna parte de path no sea válida. Si el directorio ya existe, este método no crea un directorio nuevo, pero devuelve un DirectoryInfo objeto para el directorio existente.

El path parámetro especifica una ruta de acceso de directorio, no una ruta de acceso de archivo.

Los espacios finales se quitan del final del path parámetro antes de crear el directorio.

Puede crear un directorio en un equipo remoto, en un recurso compartido al que tenga acceso de escritura. Se admiten rutas UNC; por ejemplo, puede especificar lo siguiente para path: \\2009\Archives\December en Visual Basic y \\\\2009\\Archives\\December en C#.

La creación de un directorio con solo el carácter de dos puntos (no se admite :) y provocará que se produzca una NotSupportedException excepción .

En los sistemas Unix, use una barra diagonal (/) como separador de ruta de acceso.

Consulte también

Se aplica a

CreateDirectory(String, UnixFileMode)

Source:
Directory.cs
Source:
Directory.cs
Source:
Directory.cs

Crea todos los directorios y subdirectorios en la ruta de acceso especificada con los permisos especificados a menos que ya existan.

public:
 static System::IO::DirectoryInfo ^ CreateDirectory(System::String ^ path, System::IO::UnixFileMode unixCreateMode);
[System.Runtime.Versioning.UnsupportedOSPlatform("windows")]
public static System.IO.DirectoryInfo CreateDirectory (string path, System.IO.UnixFileMode unixCreateMode);
[<System.Runtime.Versioning.UnsupportedOSPlatform("windows")>]
static member CreateDirectory : string * System.IO.UnixFileMode -> System.IO.DirectoryInfo
Public Shared Function CreateDirectory (path As String, unixCreateMode As UnixFileMode) As DirectoryInfo

Parámetros

path
String

Directorio que se va a crear.

unixCreateMode
UnixFileMode

Combinación bit a bit de los valores de enumeración que especifica el modo de archivo unix utilizado para crear directorios.

Devoluciones

Un objeto que representa el directorio en la ruta de acceso especificada. Este objeto se devuelve sin importar si ya existe un directorio en la ruta especificada.

Atributos

Excepciones

path es una cadena de longitud cero o contiene uno o varios caracteres no válidos. Puede consultar los caracteres no válidos con el método GetInvalidPathChars().

path es null.

El modo de archivo no es válido.

El llamador no dispone del permiso requerido.

La ruta de acceso especificada supera la longitud máxima definida por el sistema.

path es un archivo .

Un componente de path no es un directorio.

Se aplica a

CreateDirectory(String, DirectorySecurity)

Crea todos los directorios en la ruta de acceso especificada, salvo que ya existan, aplicando la seguridad de Windows especificada.

public:
 static System::IO::DirectoryInfo ^ CreateDirectory(System::String ^ path, System::Security::AccessControl::DirectorySecurity ^ directorySecurity);
public static System.IO.DirectoryInfo CreateDirectory (string path, System.Security.AccessControl.DirectorySecurity directorySecurity);
static member CreateDirectory : string * System.Security.AccessControl.DirectorySecurity -> System.IO.DirectoryInfo
Public Shared Function CreateDirectory (path As String, directorySecurity As DirectorySecurity) As DirectoryInfo

Parámetros

path
String

Directorio que se va a crear.

directorySecurity
DirectorySecurity

Control de acceso que se aplica al directorio.

Devoluciones

Un objeto que representa el directorio en la ruta de acceso especificada. Este objeto se devuelve sin importar si ya existe un directorio en la ruta especificada.

Excepciones

El directorio especificado por path es un archivo.

O bien

El nombre de la red es desconocido.

El llamador no dispone del permiso requerido.

Versiones de .NET Framework y .NET Core anteriores a 2.1: path es una cadena de longitud cero, contiene solo espacios en blanco o contiene uno o varios caracteres no válidos. Puede consultar los caracteres no válidos con el método GetInvalidPathChars().

O bien

path tiene como prefijo o contiene solamente un carácter de dos puntos (:).

path es null.

La ruta de acceso especificada, el nombre de archivo o ambos superan la longitud máxima definida por el sistema.

La ruta de acceso especificada no es válida (por ejemplo, está en una unidad no asignada).

path contiene un carácter de dos puntos (:) que no forma parte de una etiqueta de unidad de disco ("C:\").

Ejemplos

En el ejemplo siguiente se crea un directorio con reglas de acceso para dos cuentas de usuario.

using System;
using System.IO;
using System.Security.AccessControl;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            DirectorySecurity securityRules = new DirectorySecurity();
            securityRules.AddAccessRule(new FileSystemAccessRule(@"Domain\account1", FileSystemRights.Read, AccessControlType.Allow));
            securityRules.AddAccessRule(new FileSystemAccessRule(@"Domain\account2", FileSystemRights.FullControl, AccessControlType.Allow));

            DirectoryInfo di = Directory.CreateDirectory(@"C:\destination\NewDirectory", securityRules);
        }
    }
}
open System.IO
open System.Security.AccessControl

let securityRules = DirectorySecurity()
securityRules.AddAccessRule(FileSystemAccessRule(@"Domain\account1", FileSystemRights.Read, AccessControlType.Allow))
securityRules.AddAccessRule(FileSystemAccessRule(@"Domain\account2", FileSystemRights.FullControl, AccessControlType.Allow))

let di = Directory.CreateDirectory(@"C:\destination\NewDirectory", securityRules)
Imports System.IO
Imports System.Security.AccessControl

Module Module1

    Sub Main()
        Dim securityRules As DirectorySecurity = New DirectorySecurity()
        securityRules.AddAccessRule(New FileSystemAccessRule("Domain\account1", FileSystemRights.Read, AccessControlType.Allow))
        securityRules.AddAccessRule(New FileSystemAccessRule("Domain\account2", FileSystemRights.FullControl, AccessControlType.Allow))

        Dim di As DirectoryInfo = Directory.CreateDirectory("C:\destination\NewDirectory", securityRules)
    End Sub

End Module

Comentarios

Use esta sobrecarga de método para crear un directorio con control de acceso, por lo que no es posible tener acceso al directorio antes de aplicar la seguridad.

Se crean todos y todos los directorios especificados en el path parámetro , a menos que ya existan o a menos que alguna parte de path no sea válida. El path parámetro especifica una ruta de acceso de directorio, no una ruta de acceso de archivo. Si el directorio ya existe, este método no crea un directorio nuevo, pero devuelve un DirectoryInfo objeto para el directorio existente.

Los espacios finales se quitan del final del path parámetro antes de crear el directorio.

Puede crear un directorio en un equipo remoto, en un recurso compartido al que tenga acceso de escritura. Se admiten rutas UNC; por ejemplo, puede especificar lo siguiente para path: \\2009\Archives\December en Visual Basic y \\\\2009\\Archives\\December en C#.

La creación de un directorio con solo el carácter de dos puntos (no se admite :) y hace que se produzca una NotSupportedException excepción .

Se aplica a