Directory.CreateDirectory Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
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
- DirectoryInfo
- Datei- und Stream-E/A
- Vorgehensweise: Lesen von Text aus einer Datei
- Vorgehensweise: Schreiben von Text in eine Datei
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
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
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.