Directory.CreateDirectory Metoda

Definice

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

Adresář určený parametrem path je soubor.

-nebo-

Název sítě není znám.

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é

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

Adresář určený parametrem path je soubor.

-nebo-

Název sítě není znám.

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í.

Platí pro