DirectoryInfo.Create Método

Definición

Crea un directorio.

Sobrecargas

Create()

Crea un directorio.

Create(DirectorySecurity)

Crea un directorio mediante un objeto DirectorySecurity.

Create()

Crea un directorio.

public:
 void Create();
public void Create ();
member this.Create : unit -> unit
Public Sub Create ()

Excepciones

No se puede crear el directorio.

Ejemplos

En el ejemplo siguiente se comprueba si existe un directorio especificado, se crea el directorio si no existe y se elimina el directorio.

using namespace System;
using namespace System::IO;
int main()
{
   
   // Specify the directories you want to manipulate.
   DirectoryInfo^ di = gcnew DirectoryInfo( "c:\\MyDir" );
   try
   {
      
      // Determine whether the directory exists.
      if ( di->Exists )
      {
         
         // Indicate that it already exists.
         Console::WriteLine( "That path exists already." );
         return 0;
      }
      
      // Try to create the directory.
      di->Create();
      Console::WriteLine( "The directory was created successfully." );
      
      // 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 directories you want to manipulate.
        DirectoryInfo di = new DirectoryInfo(@"c:\MyDir");

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

            // Try to create the directory.
            di.Create();
            Console.WriteLine("The directory was created successfully.");

            // 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 directories you want to manipulate.
let di = DirectoryInfo @"c:\MyDir"

try
    // Determine whether the directory exists.
    if di.Exists then
        // Indicate that it already exists.
        printfn "That path exists already."
    else
        // Try to create the directory.
        di.Create()
        printfn "The directory was created successfully."

        // 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 directories you want to manipulate.
        Dim di As DirectoryInfo = New DirectoryInfo("c:\MyDir")
        Try
            ' Determine whether the directory exists.
            If di.Exists Then
                ' Indicate that it already exists.
                Console.WriteLine("That path exists already.")
                Return
            End If

            ' Try to create the directory.
            di.Create()
            Console.WriteLine("The directory was created successfully.")

            '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

Comentarios

Si el directorio ya existe, este método no hace nada.

Si el directorio no existía antes de llamar a este método, cualquier información de atributo almacenada en caché sobre el directorio se vaciará si la creación se realiza correctamente.

Para obtener una lista de tareas de E/S comunes, consulte Tareas de E/S comunes.

Consulte también

Se aplica a

Create(DirectorySecurity)

Crea un directorio mediante un objeto DirectorySecurity.

public:
 void Create(System::Security::AccessControl::DirectorySecurity ^ directorySecurity);
public void Create (System.Security.AccessControl.DirectorySecurity directorySecurity);
member this.Create : System.Security.AccessControl.DirectorySecurity -> unit
Public Sub Create (directorySecurity As DirectorySecurity)

Parámetros

directorySecurity
DirectorySecurity

Control de acceso que se aplica al directorio.

Excepciones

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, solo contiene espacios en blanco o contiene uno o varios caracteres no válidos. Puede consultar los caracteres no válidos con el método GetInvalidPathChars().

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.

Se intentó crear un directorio con solo el carácter de dos puntos (:).

Ejemplos

En el ejemplo de código siguiente se crea un directorio dentro de la carpeta temporal del usuario con los atributos de seguridad de directorio especificados:

using System.IO;
using System.Security.AccessControl;
using System.Security.Principal;
namespace ConsoleApp
{
    class Program
    {
        static void Main()
        {
            DirectorySecurity security = new DirectorySecurity();
            SecurityIdentifier identity = new SecurityIdentifier(WellKnownSidType.BuiltinUsersSid, null);
            FileSystemAccessRule accessRule = new FileSystemAccessRule(identity, FileSystemRights.FullControl, AccessControlType.Allow);
            security.AddAccessRule(accessRule);
            string path = Path.Combine(Path.GetTempPath(), "directoryToCreate");
            DirectoryInfo dirInfo = new DirectoryInfo(path);
            dirInfo.Create(security);
        }
    }
}

Comentarios

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

Si el directorio ya existe, este método no hace nada.

Para obtener una lista de tareas de E/S comunes, consulte Tareas de E/S comunes.

Importante

Este método se ha portado a .NET Core 3.1 como método de extensión de la FileSystemAclExtensions clase como parte del System.Security.AccessControl ensamblado: Create(DirectoryInfo, DirectorySecurity).

Se aplica a