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
| Name | Beschreibung |
|---|---|
| CreateDirectory(String) |
Erstellt alle Verzeichnisse und Unterverzeichnisse im angegebenen Pfad, es sei denn, sie sind bereits vorhanden. |
| CreateDirectory(String, DirectorySecurity) |
Erstellt alle Verzeichnisse im angegebenen Pfad, sofern sie nicht bereits vorhanden sind, und wendet die angegebene Windows-Sicherheit an. |
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 bereits ein Verzeichnis im angegebenen Pfad vorhanden ist.
Ausnahmen
Das durch path eine Datei angegebene Verzeichnis.
-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 ungültige Zeichen mithilfe der GetInvalidPathChars() Methode abfragen.
-oder-
path wird nur einem Doppelpunktzeichen (:)) vorangestellt oder enthält.
path ist null.
Der angegebene Pfad, der Dateiname oder beide überschreiten die vom System definierte maximale Länge.
Der angegebene Pfad ist ungültig (z. B. auf einem nicht zugeordneten Laufwerk).
path enthält ein Doppelpunktzeichen (:), das nicht Teil einer Laufwerksbezeichnung ist ("C:\").
Beispiele
Im folgenden Beispiel wird das angegebene Verzeichnis erstellt und gelöscht:
using System;
using System.IO;
class Test
{
public static void Main()
{
// Specify the directory you want to manipulate.
string path = @"c:\MyDir";
// Determine whether the directory exists.
if (Directory.Exists(path))
{
Console.WriteLine("That path exists already.");
return;
}
DirectoryInfo di;
try
{
// Try to create the directory.
di = Directory.CreateDirectory(path);
Console.WriteLine("The directory was created successfully at {0}.", Directory.GetCreationTime(path));
}
catch (UnauthorizedAccessException e)
{
Console.WriteLine("The caller does not have the required permission to create `{0}`", path);
return;
}
// Delete the directory.
di.Delete();
Console.WriteLine("The directory was deleted successfully.");
}
}
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" lautet, verwenden Sie einen der folgenden Aufrufe, 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");
Hinweise
Alle in der Datei angegebenen path Verzeichnisse werden erstellt, es sei denn, sie sind bereits vorhanden oder es sei denn, ein Teil ist path 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 und keinen Dateipfad an.
Nachfolgende Leerzeichen werden vor dem Erstellen des Verzeichnisses vom Ende des path Parameters entfernt.
Sie können ein Verzeichnis auf einem Remotecomputer auf einer Freigabe erstellen, auf die Sie Schreibzugriff haben. UNC-Pfade werden unterstützt; Sie können beispielsweise Folgendes für path angeben: \\2009\Archives\December in Visual Basic und \\\\2009\\Archives\\December in C#.
Erstellen eines Verzeichnisses mit nur dem Doppelpunktzeichen (:) wird nicht unterstützt und führt dazu, dass ein NotSupportedException Fehler ausgelöst wird.
Verwenden Sie auf Unix-Systemen einen Schrägstrich (/) als Pfadtrennzeichen.
Weitere Informationen
- 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, DirectorySecurity)
Erstellt alle Verzeichnisse im angegebenen Pfad, sofern sie nicht bereits vorhanden sind, und wendet die angegebene Windows-Sicherheit an.
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 bereits ein Verzeichnis im angegebenen Pfad vorhanden ist.
Ausnahmen
Das durch path eine Datei angegebene Verzeichnis.
-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 ungültige Zeichen mithilfe der GetInvalidPathChars() Methode abfragen.
-oder-
path wird nur einem Doppelpunktzeichen (:)) vorangestellt oder enthält.
path ist null.
Der angegebene Pfad, der Dateiname oder beide überschreiten die vom System definierte maximale Länge.
Der angegebene Pfad ist ungültig (z. B. auf einem nicht zugeordneten Laufwerk).
path enthält ein Doppelpunktzeichen (:), das 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;
partial class Program
{
static void DirectorySecurityExample()
{
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
Partial Class Program
Shared Sub DirectorySecurityExample()
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 Class
Hinweise
Verwenden Sie diese Methodenüberladung, um ein Verzeichnis mit Zugriffssteuerung zu erstellen, daher besteht keine Chance, 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 es sei denn, ein Teil ist path ungültig. Der path Parameter gibt einen Verzeichnispfad und keinen Dateipfad an. Wenn das Verzeichnis bereits vorhanden ist, erstellt diese Methode kein neues Verzeichnis, sondern gibt ein DirectoryInfo Objekt für das vorhandene Verzeichnis zurück.
Nachfolgende Leerzeichen werden vor dem Erstellen des Verzeichnisses vom Ende des path Parameters entfernt.
Sie können ein Verzeichnis auf einem Remotecomputer auf einer Freigabe erstellen, auf die Sie Schreibzugriff haben. UNC-Pfade werden unterstützt; Sie können beispielsweise Folgendes für path angeben: \\2009\Archives\December in Visual Basic und \\\\2009\\Archives\\December in C#.
Erstellen eines Verzeichnisses mit nur dem Doppelpunktzeichen (:) wird nicht unterstützt und bewirkt, dass ein NotSupportedException Fehler ausgelöst wird.