Directory.CreateDirectory Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
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 path
elementu : \\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ż
- DirectoryInfo
- Plik i Stream we/wy
- Instrukcje: Odczytywanie tekstu z pliku
- Instrukcje: Zapisywanie tekstu w pliku
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
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 path
elementu : \\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.