Directory.CreateDirectory Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vytvoří všechny adresáře v zadané cestě.
Přetížení
CreateDirectory(String) |
Vytvoří všechny adresáře a podadresáře v zadané cestě, pokud již neexistují. |
CreateDirectory(String, UnixFileMode) |
Vytvoří všechny adresáře a podadresáře v zadané cestě se zadanými oprávněními, pokud již neexistují. |
CreateDirectory(String, DirectorySecurity) |
Vytvoří všechny adresáře v zadané cestě, pokud již neexistují, s použitím zadaného zabezpečení Systému Windows. |
CreateDirectory(String)
- Zdroj:
- Directory.cs
- Zdroj:
- Directory.cs
- Zdroj:
- Directory.cs
Vytvoří všechny adresáře a podadresáře v zadané cestě, pokud již neexistují.
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
Parametry
- path
- String
Adresář, který chcete vytvořit.
Návraty
Objekt, který představuje adresář v zadané cestě. Tento objekt je vrácen bez ohledu na to, zda adresář v zadané cestě již existuje.
Výjimky
Volající nemá požadované oprávnění.
.NET Framework a .NET Core verze starší než 2.1: path
je řetězec nulové délky, obsahuje pouze prázdné znaky nebo obsahuje jeden nebo více neplatných znaků. Na neplatné znaky se můžete dotazovat pomocí metody .GetInvalidPathChars()
-nebo-
path
má předponu nebo obsahuje pouze znak dvojtečky (:).
path
je null
.
Zadaná cesta, název souboru nebo obojí překračují maximální délku definovanou systémem.
Zadaná cesta je neplatná (například je na nenamapované jednotce).
path
obsahuje znak dvojtečky (:), který není součástí popisku jednotky ("C:\").
Příklady
Následující příklad vytvoří a odstraní zadaný adresář:
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
Pokud chcete vytvořit adresář C:\Users\User1\Public\Html , pokud je aktuální adresář C:\Users\User1, použijte některé z následujících volání, abyste zajistili správnou interpretaci zpětného lomítka:
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");
Poznámky
Vytvoří se všechny a všechny adresáře zadané v path
adresáři, pokud už neexistují nebo pokud některá část není path
neplatná. Pokud adresář již existuje, tato metoda nevytvoří nový adresář, ale vrátí DirectoryInfo objekt pro existující adresář.
Parametr path
určuje cestu k adresáři, nikoli cestu k souboru.
Koncové mezery se před vytvořením adresáře odeberou path
z konce parametru.
Adresář můžete vytvořit ve vzdáleném počítači ve sdílené složce, ke které máte přístup pro zápis. Jsou podporovány cesty UNC. Můžete například zadat následující položky pro path
: \\2009\Archives\December
v jazyce Visual Basic a \\\\2009\\Archives\\December
v jazyce C#.
Vytvoření adresáře pouze se znakem dvojtečky (:) není podporováno a způsobí NotSupportedException
vyvolání.
V systémech Unix použijte jako oddělovač cesty lomítko (/).
Viz také
- DirectoryInfo
- Vstupně-výstupní operace souborů a Stream
- Postupy: Čtení textu ze souboru
- Postupy: Zápis textu do souboru
Platí pro
CreateDirectory(String, UnixFileMode)
- Zdroj:
- Directory.cs
- Zdroj:
- Directory.cs
- Zdroj:
- Directory.cs
Vytvoří všechny adresáře a podadresáře v zadané cestě se zadanými oprávněními, pokud již neexistují.
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
Parametry
- path
- String
Adresář, který chcete vytvořit.
- unixCreateMode
- UnixFileMode
Bitová kombinace hodnot výčtu, která určuje režim souborů systému Unix použitý k vytvoření adresářů.
Návraty
Objekt, který představuje adresář v zadané cestě. Tento objekt je vrácen bez ohledu na to, zda adresář v zadané cestě již existuje.
- Atributy
Výjimky
path
je řetězec nulové délky nebo obsahuje jeden nebo více neplatných znaků. Na neplatné znaky se můžete dotazovat pomocí metody .GetInvalidPathChars()
path
je null
.
Režim souborů je neplatný.
Volající nemá požadované oprávnění.
Zadaná cesta překračuje maximální délku definovanou systémem.
path
je soubor.
Součást není path
adresář.
Platí pro
CreateDirectory(String, DirectorySecurity)
Vytvoří všechny adresáře v zadané cestě, pokud již neexistují, s použitím zadaného zabezpečení Systému Windows.
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
Parametry
- path
- String
Adresář, který chcete vytvořit.
- directorySecurity
- DirectorySecurity
Řízení přístupu, které se má použít pro adresář.
Návraty
Objekt, který představuje adresář v zadané cestě. Tento objekt je vrácen bez ohledu na to, zda adresář v zadané cestě již existuje.
Výjimky
Volající nemá požadované oprávnění.
.NET Framework a .NET Core verze starší než 2.1: path
je řetězec nulové délky, obsahuje pouze prázdné znaky nebo obsahuje jeden nebo více neplatných znaků. Na neplatné znaky se můžete dotazovat pomocí metody .GetInvalidPathChars()
-nebo-
path
má předponu nebo obsahuje pouze znak dvojtečky (:).
path
je null
.
Zadaná cesta, název souboru nebo obojí překračují maximální délku definovanou systémem.
Zadaná cesta je neplatná (například je na nenamapované jednotce).
path
obsahuje znak dvojtečky (:), který není součástí popisku jednotky ("C:\").
Příklady
Následující příklad vytvoří nový adresář s pravidly přístupu pro dva uživatelské účty.
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
Poznámky
Pomocí tohoto přetížení metody můžete vytvořit adresář s řízením přístupu, aby před použitím zabezpečení nebylo možné k adresáři získat přístup.
Vytvoří se všechny a všechny adresáře zadané v parametru path
, pokud už neexistují nebo pokud některá část není path
neplatná. Parametr path
určuje cestu k adresáři, nikoli cestu k souboru. Pokud adresář již existuje, tato metoda nevytvoří nový adresář, ale vrátí DirectoryInfo objekt pro existující adresář.
Koncové mezery se před vytvořením adresáře odeberou path
z konce parametru.
Adresář můžete vytvořit ve vzdáleném počítači ve sdílené složce, ke které máte přístup pro zápis. Jsou podporovány cesty UNC. Můžete například zadat následující položky pro path
: \\2009\Archives\December
v jazyce Visual Basic a \\\\2009\\Archives\\December
v jazyce C#.
Vytvoření adresáře pouze se znakem dvojtečky (:) není podporováno a způsobí NotSupportedException
vyvolání.