Directory.CreateDirectory Metoda

Definicja

Tworzy wszystkie katalogi w określonej ścieżce.Creates all the directories in a specified path.

Przeciążenia

CreateDirectory(String)

Tworzy wszystkie katalogi i podkatalogi w określonej ścieżce, chyba że już istnieją.Creates all directories and subdirectories in the specified path unless they already exist.

CreateDirectory(String, DirectorySecurity)

Tworzy wszystkie katalogi w określonej ścieżce, chyba że już istnieją, stosując określone zabezpieczenia systemu Windows.Creates all the directories in the specified path, unless they already exist, applying the specified Windows security.

CreateDirectory(String)

Tworzy wszystkie katalogi i podkatalogi w określonej ścieżce, chyba że już istnieją.Creates all directories and subdirectories in the specified path unless they already exist.

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, który ma zostać utworzony.The directory to create.

Zwraca

Obiekt, który reprezentuje katalog w określonej ścieżce.An object that represents the directory at the specified path. Ten obiekt jest zwracany bez względu na to, czy katalog w określonej ścieżce już istnieje.This object is returned regardless of whether a directory at the specified path already exists.

Wyjątki

Katalog określony przez path jest plikiem.The directory specified by path is a file.

— lub —-or- Nazwa sieci jest nieznana.The network name is not known.

Element wywołujący nie ma wymaganego uprawnienia.The caller does not have the required permission.

path jest ciągiem o zerowej długości, zawiera tylko znak odstępu lub zawiera jeden lub więcej nieprawidłowych znaków.path is a zero-length string, contains only white space, or contains one or more invalid characters. Za pomocą metody GetInvalidPathChars() można wykonywać zapytania dotyczące nieprawidłowych znaków.You can query for invalid characters by using the GetInvalidPathChars() method.

— lub —-or- path jest poprzedzony znakiem lub zawierającym tylko dwukropek (:).path is prefixed with, or contains, only a colon character (:).

Parametr path ma wartość null.path is null.

Podana ścieżka, nazwa pliku lub obie przekraczają maksymalną długość zdefiniowaną przez system.The specified path, file name, or both exceed the system-defined maximum length.

Określona ścieżka jest nieprawidłowa (na przykład znajduje się na dysku niezamapowanym).The specified path is invalid (for example, it is on an unmapped drive).

path zawiera dwukropek (:) to nie jest część etykiety dysku ("C:\").path contains a colon character (:) that is not part of a drive label ("C:\").

Przykłady

Poniższy przykład tworzy i usuwa określony katalog:The following example creates and deletes the specified directory:

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 {}
    }
}
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 jest C:\Users\User1, użyj dowolnego z następujących wywołań, aby upewnić się, że ukośnik odwrotny jest interpretowany prawidłowo:To create the directory C:\Users\User1\Public\Html when the current directory is C:\Users\User1, use any of the following calls to ensure that the backslash is interpreted properly:

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 katalogi określone w path są tworzone, chyba że już istnieją lub niektóre części path nie są prawidłowe.Any and all directories specified in path are created, unless they already exist or unless some part of path is invalid. Jeśli katalog już istnieje, ta metoda nie tworzy nowego katalogu, ale zwraca obiekt DirectoryInfo dla istniejącego katalogu.If the directory already exists, this method does not create a new directory, but it returns a DirectoryInfo object for the existing directory.

path parametr określa ścieżkę katalogu, a nie ścieżkę pliku.The path parameter specifies a directory path, not a file path.

Spacje końcowe są usuwane z końca parametru path przed utworzeniem katalogu.Trailing spaces are removed from the end of the path parameter before creating the directory.

Katalog na komputerze zdalnym można utworzyć na udziale, do którego masz uprawnienia do zapisu.You can create a directory on a remote computer, on a share that you have write access to. Obsługiwane są ścieżki UNC; na przykład można określić następujące elementy path: \\2009\Archives\December w Visual Basic i \\\\2009\\Archives\\December w C#.UNC paths are supported; for example, you can specify the following for path: \\2009\Archives\December in Visual Basic, and \\\\2009\\Archives\\December in C#.

Tworzenie katalogu tylko z dwukropkiem (:) nie jest obsługiwana i spowoduje zgłoszenie NotSupportedException.Creating a directory with only the colon character (:) is not supported, and will cause a NotSupportedException to be thrown.

W systemach UNIX jako separator ścieżki Użyj ukośnika (/).On Unix systems, use a forward slash (/) as path separator.

Zobacz też

CreateDirectory(String, DirectorySecurity)

Tworzy wszystkie katalogi w określonej ścieżce, chyba że już istnieją, stosując określone zabezpieczenia systemu Windows.Creates all the directories in the specified path, unless they already exist, applying the specified Windows security.

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

Parametry

path
String

Katalog, który ma zostać utworzony.The directory to create.

directorySecurity
DirectorySecurity

Kontrola dostępu, która ma zostać zastosowana do katalogu.The access control to apply to the directory.

Zwraca

Obiekt, który reprezentuje katalog w określonej ścieżce.An object that represents the directory at the specified path. Ten obiekt jest zwracany bez względu na to, czy katalog w określonej ścieżce już istnieje.This object is returned regardless of whether a directory at the specified path already exists.

Wyjątki

Katalog określony przez path jest plikiem.The directory specified by path is a file.

— lub —-or- Nazwa sieci jest nieznana.The network name is not known.

Element wywołujący nie ma wymaganego uprawnienia.The caller does not have the required permission.

path jest ciągiem o zerowej długości, zawiera tylko znak odstępu lub zawiera jeden lub więcej nieprawidłowych znaków.path is a zero-length string, contains only white space, or contains one or more invalid characters. Za pomocą metody GetInvalidPathChars() można wykonywać zapytania dotyczące nieprawidłowych znaków.You can query for invalid characters by using the GetInvalidPathChars() method.

— lub —-or- path jest poprzedzony znakiem lub zawierającym tylko dwukropek (:).path is prefixed with, or contains, only a colon character (:).

Parametr path ma wartość null.path is null.

Podana ścieżka, nazwa pliku lub obie przekraczają maksymalną długość zdefiniowaną przez system.The specified path, file name, or both exceed the system-defined maximum length.

Określona ścieżka jest nieprawidłowa (na przykład znajduje się na dysku niezamapowanym).The specified path is invalid (for example, it is on an unmapped drive).

path zawiera dwukropek (:) to nie jest część etykiety dysku ("C:\").path contains a colon character (:) that is not part of a drive label ("C:\").

Przykłady

Poniższy przykład tworzy nowy katalog z regułami dostępu dla dwóch kont użytkowników.The following example creates a new directory with access rules for two user accounts.

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);
        }
    }
}
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 możliwości dostępu do katalogu przed zastosowaniem zabezpieczeń.Use this method overload to create a directory with access control, so there is no chance the directory can be accessed before security is applied.

Wszystkie katalogi określone w parametrze path są tworzone, chyba że już istnieją lub część path nie jest prawidłowa.Any and all directories specified in the path parameter are created, unless they already exist or unless some part of path is invalid. path parametr określa ścieżkę katalogu, a nie ścieżkę pliku.The path parameter specifies a directory path, not a file path. Jeśli katalog już istnieje, ta metoda nie tworzy nowego katalogu, ale zwraca obiekt DirectoryInfo dla istniejącego katalogu.If the directory already exists, this method does not create a new directory, but it returns a DirectoryInfo object for the existing directory.

Spacje końcowe są usuwane z końca parametru path przed utworzeniem katalogu.Trailing spaces are removed from the end of the path parameter before creating the directory.

Katalog na komputerze zdalnym można utworzyć na udziale, do którego masz uprawnienia do zapisu.You can create a directory on a remote computer, on a share that you have write access to. Obsługiwane są ścieżki UNC; na przykład można określić następujące elementy path: \\2009\Archives\December w Visual Basic i \\\\2009\\Archives\\December w C#.UNC paths are supported; for example, you can specify the following for path: \\2009\Archives\December in Visual Basic, and \\\\2009\\Archives\\December in C#.

Tworzenie katalogu tylko z dwukropkiem (:) nie jest obsługiwane i powoduje zgłoszenie NotSupportedException.Creating a directory with only the colon character (:) is not supported and causes a NotSupportedException to be thrown.

Dotyczy