Directory.CreateDirectory Metoda

Definicja

Tworzy wszystkie katalogi w określonej ścieżce.

Przeciążenia

CreateDirectory(String)

Tworzy wszystkie katalogi i podkatalogi w określonej ścieżce, chyba że już istnieją.

CreateDirectory(String, UnixFileMode)

Tworzy wszystkie katalogi i podkatalogi w określonej ścieżce z określonymi uprawnieniami, chyba że już istnieją.

CreateDirectory(String, DirectorySecurity)

Tworzy wszystkie katalogi w określonej ścieżce, chyba że już istnieją, stosując określone zabezpieczenia systemu Windows.

CreateDirectory(String)

Źródło:
Directory.cs
Źródło:
Directory.cs
Źródło:
Directory.cs

Tworzy wszystkie katalogi i podkatalogi w określonej ścieżce, chyba że już istnieją.

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

Katalog do utworzenia.

Zwraca

Obiekt reprezentujący katalog w określonej ścieżce. Ten obiekt jest zwracany niezależnie od tego, czy katalog w określonej ścieżce już istnieje.

Wyjątki

Katalog określony przez path jest plikiem.

-lub-

Nazwa sieci nie jest znana.

Obiekt wywołujący nie posiada wymaganych uprawnień.

.NET Framework i .NET Core w wersjach starszych niż 2.1: path jest ciągiem o zerowej długości, zawiera tylko biały odstęp lub zawiera co najmniej jeden nieprawidłowy znak. Możesz wykonać zapytanie o nieprawidłowe znaki przy użyciu GetInvalidPathChars() metody .

-lub-

path jest poprzedzony znakiem dwukropka lub zawiera tylko znak dwukropka (:).

path to null.

Podana ścieżka, nazwa pliku lub obie przekraczają maksymalną długość zdefiniowaną przez system.

Określona ścieżka jest nieprawidłowa (na przykład znajduje się na niezamapowanym dysku).

path zawiera znak dwukropka (:), który nie jest częścią etykiety dysku ("C:\").

Przykłady

Poniższy przykład tworzy i usuwa określony katalog:

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

Aby utworzyć katalog C:\Users\User1\Public\Html , gdy bieżący katalog to C:\Users\User1, użyj dowolnego z następujących wywołań, aby upewnić się, że ukośnik odwrotny jest poprawnie interpretowany:

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");

Uwagi

Wszystkie i wszystkie katalogi określone w pliku path są tworzone, chyba że już istnieją lub chyba że część jest nieprawidłowa path . Jeśli katalog już istnieje, ta metoda nie tworzy nowego katalogu, ale zwraca DirectoryInfo obiekt dla istniejącego katalogu.

Parametr path określa ścieżkę katalogu, a nie ścieżkę pliku.

Spacje końcowe są usuwane z końca parametru path przed utworzeniem katalogu.

Katalog można utworzyć na komputerze zdalnym w udziale, do którego masz dostęp do zapisu. Ścieżki UNC są obsługiwane; na przykład można określić następujące wartości dla pathelementu : \\2009\Archives\December w języku Visual Basic i \\\\2009\\Archives\\December w języku C#.

Utworzenie katalogu z tylko znakiem dwukropka (:) nie jest obsługiwane i spowoduje NotSupportedException zgłoszenie.

W systemach Unix użyj ukośnika (/) jako separatora ścieżki.

Zobacz też

Dotyczy

CreateDirectory(String, UnixFileMode)

Źródło:
Directory.cs
Źródło:
Directory.cs
Źródło:
Directory.cs

Tworzy wszystkie katalogi i podkatalogi w określonej ścieżce z określonymi uprawnieniami, chyba że już istnieją.

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

Katalog do utworzenia.

unixCreateMode
UnixFileMode

Bitowa kombinacja wartości wyliczenia, która określa tryb plików unix używany do tworzenia katalogów.

Zwraca

Obiekt reprezentujący katalog w określonej ścieżce. Ten obiekt jest zwracany niezależnie od tego, czy katalog w określonej ścieżce już istnieje.

Atrybuty

Wyjątki

path jest ciągiem o zerowej długości lub zawiera co najmniej jeden nieprawidłowy znak. Możesz wykonać zapytanie o nieprawidłowe znaki przy użyciu GetInvalidPathChars() metody .

path to null.

Tryb pliku jest nieprawidłowy.

Obiekt wywołujący nie posiada wymaganych uprawnień.

Określona ścieżka przekracza maksymalną długość zdefiniowaną przez system.

path jest plikiem.

Składnik elementu path nie jest katalogiem.

Dotyczy

CreateDirectory(String, DirectorySecurity)

Tworzy wszystkie katalogi w określonej ścieżce, chyba że już istnieją, stosując określone zabezpieczenia systemu 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

Katalog do utworzenia.

directorySecurity
DirectorySecurity

Kontrola dostępu do zastosowania do katalogu.

Zwraca

Obiekt reprezentujący katalog w określonej ścieżce. Ten obiekt jest zwracany niezależnie od tego, czy katalog w określonej ścieżce już istnieje.

Wyjątki

Katalog określony przez path jest plikiem.

-lub-

Nazwa sieci nie jest znana.

Obiekt wywołujący nie posiada wymaganych uprawnień.

.NET Framework i .NET Core w wersjach starszych niż 2.1: path jest ciągiem o zerowej długości, zawiera tylko biały odstęp lub zawiera co najmniej jeden nieprawidłowy znak. Możesz wykonać zapytanie o nieprawidłowe znaki przy użyciu GetInvalidPathChars() metody .

-lub-

path jest poprzedzony znakiem dwukropka lub zawiera tylko znak dwukropka (:).

path to null.

Podana ścieżka, nazwa pliku lub obie przekraczają maksymalną długość zdefiniowaną przez system.

Określona ścieżka jest nieprawidłowa (na przykład znajduje się na niezamapowanym dysku).

path zawiera znak dwukropka (:), który nie jest częścią etykiety dysku ("C:\").

Przykłady

Poniższy przykład tworzy nowy katalog z regułami dostępu dla dwóch kont użytkowników.

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

Uwagi

Użyj tego przeciążenia metody, aby utworzyć katalog z kontrolą dostępu, więc nie ma szans, aby można było uzyskać dostęp do katalogu przed zastosowaniem zabezpieczeń.

Wszystkie i wszystkie katalogi określone w parametrze path są tworzone, chyba że już istnieją lub chyba że część jest nieprawidłowa path . Parametr path określa ścieżkę katalogu, a nie ścieżkę pliku. Jeśli katalog już istnieje, ta metoda nie tworzy nowego katalogu, ale zwraca DirectoryInfo obiekt dla istniejącego katalogu.

Spacje końcowe są usuwane z końca parametru path przed utworzeniem katalogu.

Katalog można utworzyć na komputerze zdalnym w udziale, do którego masz dostęp do zapisu. Ścieżki UNC są obsługiwane; na przykład można określić następujące wartości dla pathelementu : \\2009\Archives\December w języku Visual Basic i \\\\2009\\Archives\\December w języku C#.

Tworzenie katalogu z tylko znakiem dwukropka (:) nie jest obsługiwane i powoduje, że NotSupportedException element jest zgłaszany.

Dotyczy