Teilen über


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, sofern sie nicht bereits vorhanden sind.

CreateDirectory(String, DirectorySecurity)

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

CreateDirectory(String)

Quelle:
Directory.cs
Quelle:
Directory.cs
Quelle:
Directory.cs

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

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 älter als 2.1: path ist eine Zeichenfolge der Länge null, enthält nur Leerzeichen oder enthält ein oder mehrere ungültige 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 ("C:\") ist.

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

Verwenden Sie einen der folgenden Aufrufe, um das Verzeichnis C:\Users\User1\Public\Html zu erstellen, wenn das aktuelle Verzeichnis C:\Users\User1 ist, um sicherzustellen, dass der umgekehrte Schrägstrich 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 angegebenen path Verzeichnisse werden erstellt, es sei denn, sie sind bereits vorhanden oder ein Teil von path ist ungültig. Wenn das Verzeichnis bereits vorhanden ist, erstellt diese Methode kein neues Verzeichnis, gibt jedoch ein DirectoryInfo -Objekt für das vorhandene Verzeichnis zurück.

Der path Parameter gibt einen Verzeichnispfad und keinen Dateipfad an.

Nachfolgende Leerzeichen werden am Ende des path Parameters entfernt, bevor das Verzeichnis erstellt wird.

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

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

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

Weitere Informationen

Gilt für:

CreateDirectory(String, UnixFileMode)

Quelle:
Directory.cs
Quelle:
Directory.cs
Quelle:
Directory.cs

Erstellt alle Verzeichnisse und Unterverzeichnisse im angegebenen Pfad mit den angegebenen Berechtigungen, sofern sie nicht bereits vorhanden sind.

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 Enumerationswerte, die den Unix-Dateimodus angibt, der zum Erstellen von Verzeichnissen verwendet wird.

Gibt zurück

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 Zeichenfolge der Länge Null oder enthält ein oder mehrere ungültige 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 von path 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

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 älter als 2.1: path ist eine Zeichenfolge der Länge null, enthält nur Leerzeichen oder enthält ein oder mehrere ungültige 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 ("C:\") ist.

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 keine Chance besteht, dass 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 ein Teil von path ist ungültig. Der path Parameter gibt einen Verzeichnispfad und keinen Dateipfad an. Wenn das Verzeichnis bereits vorhanden ist, erstellt diese Methode kein neues Verzeichnis, gibt jedoch ein DirectoryInfo -Objekt für das vorhandene Verzeichnis zurück.

Nachfolgende Leerzeichen werden am Ende des path Parameters entfernt, bevor das Verzeichnis erstellt wird.

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

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

Gilt für: