Directory.CreateDirectory Methode

Definition

Erstellt alle Verzeichnisse in einem angegebenen Pfad.

Überlädt

CreateDirectory(String)

Erstellt alle Verzeichnisse und Unterverzeichnisse im angegebenen Pfad, es sei denn, sie sind bereits vorhanden.

CreateDirectory(String, UnixFileMode)

Erstellt alle Verzeichnisse und Unterverzeichnisse im angegebenen Pfad mit den angegebenen Berechtigungen, es sei denn, sie sind bereits vorhanden.

CreateDirectory(String, DirectorySecurity)

Erstellt alle Verzeichnisse im angegebenen Pfad, sofern diese nicht bereits vorhanden sind. Dabei wird die angegebene Windows-Sicherheit angewendet.

CreateDirectory(String)

Erstellt alle Verzeichnisse und Unterverzeichnisse im angegebenen Pfad, es sei denn, sie sind bereits vorhanden.

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

Parameter

path
String

Das zu erstellende Verzeichnis.

Gibt zurück

DirectoryInfo

Ein Objekt, das das Verzeichnis im angegebenen Pfad darstellt. Dieses Objekt wird unabhängig davon zurückgegeben, ob ein Verzeichnis unter dem angegebenen Pfad bereits vorhanden ist.

Ausnahmen

Das durch path angegebene Verzeichnis ist eine Datei.

- oder - Der Netzwerkname ist nicht bekannt.

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.

.NET Framework- und .NET Core-Versionen, die älter als 2.1 sind: path eine Nulllängenzeichenfolge, enthält nur Leerzeichen oder enthält mindestens ein ungültiges Zeichen. Sie können Abfragen für ungültige Zeichen mithilfe der GetInvalidPathChars()-Methode ausführen.

- oder - path ist ein Doppelpunkt (:) vorangestellt bzw. enthält nur einen Doppelpunkt.

path ist null.

Der angegebene Pfad und/oder Dateiname überschreiten die vom System definierte maximale Länge.

Der angegebene Pfad ist ungültig (er befindet sich z. B. auf einem nicht zugeordneten Laufwerk).

path enthält einen Doppelpunkt (:), der nicht Teil einer Laufwerksbezeichnung ist („C:\“).

Beispiele

Im folgenden Beispiel wird das angegebene Verzeichnis erstellt und gelöscht:

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

Um das Verzeichnis C:\Users\User1 \Public\Html zu erstellen, wenn das aktuelle Verzeichnis C:\Users\User1 ist, verwenden Sie einen der folgenden Aufrufe, um sicherzustellen, dass der Backslash ordnungsgemäß interpretiert wird:

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");  

Hinweise

Alle in path angegebenen Verzeichnisse werden erstellt, es sei denn, sie sind bereits vorhanden oder es sei denn, ein Teil path ist ungültig. Wenn das Verzeichnis bereits vorhanden ist, erstellt diese Methode kein neues Verzeichnis, sondern gibt ein DirectoryInfo Objekt für das vorhandene Verzeichnis zurück.

Der path Parameter gibt einen Verzeichnispfad an, kein Dateipfad.

Nachgestellte Leerzeichen werden vom Ende des path Parameters entfernt, bevor Sie das Verzeichnis erstellen.

Sie können ein Verzeichnis auf einem Remotecomputer erstellen, auf einer Freigabe, auf die Sie Schreibzugriff haben. UNC-Pfade werden unterstützt; Sie können beispielsweise folgendes für path: \\2009\Archives\December in Visual Basic und \\\\2009\\Archives\\December in C# angeben.

Erstellen eines Verzeichnisses mit nur dem Doppelpunktzeichen (:) wird nicht unterstützt und führt dazu, dass ein NotSupportedException Wurf ausgelöst wird.

Verwenden Sie auf Unix-Systemen einen Schrägstrich (/) als Pfadtrennzeichen.

Siehe auch

Gilt für

CreateDirectory(String, UnixFileMode)

Erstellt alle Verzeichnisse und Unterverzeichnisse im angegebenen Pfad mit den angegebenen Berechtigungen, es sei denn, sie sind bereits vorhanden.

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

Parameter

path
String

Das zu erstellende Verzeichnis.

unixCreateMode
UnixFileMode

Eine bitweise Kombination der Aufzählungswerte, die den Unix-Dateimodus angibt, der zum Erstellen von Verzeichnissen verwendet wird.

Gibt zurück

DirectoryInfo

Ein Objekt, das das Verzeichnis im angegebenen Pfad darstellt. Dieses Objekt wird unabhängig davon zurückgegeben, ob ein Verzeichnis unter dem angegebenen Pfad bereits vorhanden ist.

Attribute

Ausnahmen

path ist eine Null-Länge-Zeichenfolge oder enthält mindestens ein ungültiges Zeichen. Sie können Abfragen für ungültige Zeichen mithilfe der GetInvalidPathChars()-Methode ausführen.

path ist null.

Der Dateimodus ist ungültig.

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.

Der angegebene Pfad überschreitet die für das System definierte maximale Länge.

path ist eine Datei.

Eine Komponente der path Datei ist kein Verzeichnis.

Gilt für

CreateDirectory(String, DirectorySecurity)

Erstellt alle Verzeichnisse im angegebenen Pfad, sofern diese nicht bereits vorhanden sind. Dabei wird die angegebene Windows-Sicherheit angewendet.

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

Parameter

path
String

Das zu erstellende Verzeichnis.

directorySecurity
DirectorySecurity

Die Zugriffssteuerung, die auf das Verzeichnis angewendet werden soll.

Gibt zurück

DirectoryInfo

Ein Objekt, das das Verzeichnis im angegebenen Pfad darstellt. Dieses Objekt wird unabhängig davon zurückgegeben, ob ein Verzeichnis unter dem angegebenen Pfad bereits vorhanden ist.

Ausnahmen

Das durch path angegebene Verzeichnis ist eine Datei.

- oder - Der Netzwerkname ist nicht bekannt.

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.

.NET Framework- und .NET Core-Versionen, die älter als 2.1 sind: path eine leere Zeichenfolge, enthält nur Leerzeichen oder enthält mindestens ein ungültiges Zeichen. Sie können Abfragen für ungültige Zeichen mithilfe der GetInvalidPathChars()-Methode ausführen.

- oder - path ist ein Doppelpunkt (:) vorangestellt bzw. enthält nur einen Doppelpunkt.

path ist null.

Der angegebene Pfad und/oder Dateiname überschreiten die vom System definierte maximale Länge.

Der angegebene Pfad ist ungültig (er befindet sich z. B. auf einem nicht zugeordneten Laufwerk).

path enthält einen Doppelpunkt (:), der nicht Teil einer Laufwerksbezeichnung ist („C:\“).

Beispiele

Im folgenden Beispiel wird ein neues Verzeichnis mit Zugriffsregeln für zwei Benutzerkonten erstellt.

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

Hinweise

Verwenden Sie diese Methodenüberladung, um ein Verzeichnis mit Zugriffssteuerung zu erstellen, sodass es keine Chance gibt, auf das Verzeichnis zugegriffen werden kann, bevor die Sicherheit angewendet wird.

Alle im path Parameter angegebenen Verzeichnisse werden erstellt, es sei denn, sie sind bereits vorhanden oder es sei denn, ein Teil path ist ungültig. Der path Parameter gibt einen Verzeichnispfad an, kein Dateipfad. Wenn das Verzeichnis bereits vorhanden ist, erstellt diese Methode kein neues Verzeichnis, sondern gibt ein DirectoryInfo Objekt für das vorhandene Verzeichnis zurück.

Nachgestellte Leerzeichen werden vom Ende des path Parameters entfernt, bevor Sie das Verzeichnis erstellen.

Sie können ein Verzeichnis auf einem Remotecomputer erstellen, auf einer Freigabe, auf die Sie Schreibzugriff haben. UNC-Pfade werden unterstützt; Sie können beispielsweise folgendes für path: \\2009\Archives\December in Visual Basic und \\\\2009\\Archives\\December in C# angeben.

Erstellen eines Verzeichnisses mit nur dem Doppelpunktzeichen (:) wird nicht unterstützt und bewirkt, dass ein NotSupportedException Wurf ausgelöst wird.

Gilt für