Directory.CreateDirectory Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Skapar alla kataloger i en angiven sökväg.
Överlagringar
| Name | Description |
|---|---|
| CreateDirectory(String) |
Skapar alla kataloger och underkataloger i den angivna sökvägen om de inte redan finns. |
| CreateDirectory(String, DirectorySecurity) |
Skapar alla kataloger i den angivna sökvägen, såvida de inte redan finns och tillämpar den angivna Windows säkerhet. |
CreateDirectory(String)
Skapar alla kataloger och underkataloger i den angivna sökvägen om de inte redan finns.
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
Parametrar
- path
- String
Katalogen som ska skapas.
Returer
Ett objekt som representerar katalogen på den angivna sökvägen. Det här objektet returneras oavsett om det redan finns en katalog på den angivna sökvägen.
Undantag
Anroparen har inte den behörighet som krävs.
.NET Framework- och .NET Core-versioner som är äldre än 2.1: path är en sträng med noll längd, innehåller endast tomt utrymme eller innehåller ett eller flera ogiltiga tecken. Du kan fråga efter ogiltiga tecken med hjälp GetInvalidPathChars() av metoden .
-eller-
path är prefix med, eller innehåller, endast ett kolontecken (:).
path är null.
Den angivna sökvägen, filnamnet eller båda överskrider den systemdefinierade maximala längden.
Den angivna sökvägen är ogiltig (den finns till exempel på en ommappad enhet).
path innehåller ett kolontecken (:) som inte ingår i en enhetsetikett ("C:\").
Exempel
I följande exempel skapas och tas den angivna katalogen bort:
using System;
using System.IO;
class Test
{
public static void Main()
{
// Specify the directory you want to manipulate.
string path = @"c:\MyDir";
// Determine whether the directory exists.
if (Directory.Exists(path))
{
Console.WriteLine("That path exists already.");
return;
}
DirectoryInfo di;
try
{
// Try to create the directory.
di = Directory.CreateDirectory(path);
Console.WriteLine("The directory was created successfully at {0}.", Directory.GetCreationTime(path));
}
catch (UnauthorizedAccessException e)
{
Console.WriteLine("The caller does not have the required permission to create `{0}`", path);
return;
}
// Delete the directory.
di.Delete();
Console.WriteLine("The directory was deleted successfully.");
}
}
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
Om du vill skapa katalogen C:\Users\User1\Public\Html när den aktuella katalogen är C:\Users\User1 använder du något av följande anrop för att säkerställa att omvänt snedstreck tolkas korrekt:
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");
Kommentarer
Alla kataloger som anges i path skapas, såvida de inte redan finns eller om en del av path inte är ogiltig. Om katalogen redan finns skapar den här metoden inte en ny katalog, men returnerar ett DirectoryInfo objekt för den befintliga katalogen.
Parametern path anger en katalogsökväg, inte en filsökväg.
Avslutande blanksteg tas bort från slutet av parametern path innan katalogen skapas.
Du kan skapa en katalog på en fjärrdator på en resurs som du har skrivåtkomst till. UNC-sökvägar stöds. Du kan till exempel ange följande för path: \\2009\Archives\December i Visual Basic och \\\\2009\\Archives\\December i C#.
Om du skapar en katalog med endast kolontecknet (:) stöds inte och orsakar att en NotSupportedException genereras.
I Unix-system använder du ett snedstreck (/) som sökvägsavgränsare.
Se även
- DirectoryInfo
- Fil- och ström-I/O
- Anvisningar: Läsa text från en fil
- Anvisningar: Skriva text till en fil
Gäller för
CreateDirectory(String, DirectorySecurity)
Skapar alla kataloger i den angivna sökvägen, såvida de inte redan finns och tillämpar den angivna Windows säkerhet.
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
Parametrar
- path
- String
Katalogen som ska skapas.
- directorySecurity
- DirectorySecurity
Åtkomstkontrollen som ska tillämpas på katalogen.
Returer
Ett objekt som representerar katalogen på den angivna sökvägen. Det här objektet returneras oavsett om det redan finns en katalog på den angivna sökvägen.
Undantag
Anroparen har inte den behörighet som krävs.
.NET Framework- och .NET Core-versioner som är äldre än 2.1: path är en sträng med noll längd, innehåller endast tomt utrymme eller innehåller ett eller flera ogiltiga tecken. Du kan fråga efter ogiltiga tecken med hjälp GetInvalidPathChars() av metoden .
-eller-
path är prefix med, eller innehåller, endast ett kolontecken (:).
path är null.
Den angivna sökvägen, filnamnet eller båda överskrider den systemdefinierade maximala längden.
Den angivna sökvägen är ogiltig (den finns till exempel på en ommappad enhet).
path innehåller ett kolontecken (:) som inte ingår i en enhetsetikett ("C:\").
Exempel
I följande exempel skapas en ny katalog med åtkomstregler för två användarkonton.
using System;
using System.IO;
using System.Security.AccessControl;
partial class Program
{
static void DirectorySecurityExample()
{
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
Partial Class Program
Shared Sub DirectorySecurityExample()
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 Class
Kommentarer
Använd den här metoden för att skapa en katalog med åtkomstkontroll, så det finns ingen chans att katalogen kan nås innan säkerheten tillämpas.
Alla kataloger som anges i parametern path skapas, såvida de inte redan finns eller om inte någon del av path är ogiltig. Parametern path anger en katalogsökväg, inte en filsökväg. Om katalogen redan finns skapar den här metoden inte en ny katalog, men returnerar ett DirectoryInfo objekt för den befintliga katalogen.
Avslutande blanksteg tas bort från slutet av parametern path innan katalogen skapas.
Du kan skapa en katalog på en fjärrdator på en resurs som du har skrivåtkomst till. UNC-sökvägar stöds. Du kan till exempel ange följande för path: \\2009\Archives\December i Visual Basic och \\\\2009\\Archives\\December i C#.
Att skapa en katalog med endast kolontecknet (:) stöds inte och gör att en NotSupportedException genereras.