Directory.CreateDirectory Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Crée tous les répertoires dans un chemin d’accès spécifié.
Surcharges
| Nom | Description |
|---|---|
| CreateDirectory(String) |
Crée tous les répertoires et sous-répertoires dans le chemin spécifié, sauf s’ils existent déjà. |
| CreateDirectory(String, DirectorySecurity) |
Crée tous les répertoires dans le chemin spécifié, sauf s’ils existent déjà, en appliquant la sécurité Windows spécifiée. |
CreateDirectory(String)
Crée tous les répertoires et sous-répertoires dans le chemin spécifié, sauf s’ils existent déjà.
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
Paramètres
- path
- String
Répertoire à créer.
Retours
Objet qui représente le répertoire au niveau du chemin d’accès spécifié. Cet objet est retourné, qu’il existe déjà un répertoire au niveau du chemin spécifié.
Exceptions
L’appelant n’a pas l’autorisation requise.
.NET Framework et les versions .NET Core antérieures à 2.1 : path est une chaîne de longueur nulle, contient uniquement un espace blanc ou contient un ou plusieurs caractères non valides. Vous pouvez rechercher des caractères non valides à l’aide de la méthode GetInvalidPathChars().
-ou-
path est précédé ou contient uniquement un caractère deux-points (:).
path a la valeur null.
Le chemin d’accès spécifié, le nom de fichier ou les deux dépassent la longueur maximale définie par le système.
Le chemin spécifié n’est pas valide (par exemple, il se trouve sur un lecteur non mappé).
path contient un caractère deux-points (:) qui ne fait pas partie d’une étiquette de lecteur (« C :\ »).
Exemples
L’exemple suivant crée et supprime le répertoire spécifié :
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
Pour créer le répertoire C :\Users\User1\Public\Html lorsque le répertoire actif est C :\Users\User1, utilisez l’un des appels suivants pour vous assurer que la barre oblique inverse est interprétée correctement :
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");
Remarques
Tous les répertoires spécifiés dans path sont créés, sauf s’ils existent déjà ou sauf si une partie n’est path pas valide. Si le répertoire existe déjà, cette méthode ne crée pas de répertoire, mais retourne un DirectoryInfo objet pour le répertoire existant.
Le path paramètre spécifie un chemin d’accès au répertoire, et non un chemin d’accès au fichier.
Les espaces de fin sont supprimés de la fin du paramètre avant de path créer le répertoire.
Vous pouvez créer un répertoire sur un ordinateur distant, sur un partage auquel vous avez accès en écriture. Les chemins UNC sont pris en charge ; Par exemple, vous pouvez spécifier les éléments suivants pour path : \\2009\Archives\December dans Visual Basic et \\\\2009\\Archives\\December en C#.
La création d’un répertoire avec uniquement le caractère deux-points (:) n’est pas prise en charge et entraîne la levée d’un NotSupportedException répertoire.
Sur les systèmes Unix, utilisez une barre oblique (/) comme séparateur de chemin d’accès.
Voir aussi
- DirectoryInfo
- E/S de fichier et de flux
- Guide pratique pour lire du texte à partir d’un fichier
- Guide pratique pour écrire du texte dans un fichier
S’applique à
CreateDirectory(String, DirectorySecurity)
Crée tous les répertoires dans le chemin spécifié, sauf s’ils existent déjà, en appliquant la sécurité Windows spécifiée.
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
Paramètres
- path
- String
Répertoire à créer.
- directorySecurity
- DirectorySecurity
Contrôle d’accès à appliquer au répertoire.
Retours
Objet qui représente le répertoire au niveau du chemin d’accès spécifié. Cet objet est retourné, qu’il existe déjà un répertoire au niveau du chemin spécifié.
Exceptions
L’appelant n’a pas l’autorisation requise.
.NET Framework et les versions .NET Core antérieures à 2.1 : path est une chaîne de longueur nulle, contient uniquement un espace blanc ou contient un ou plusieurs caractères non valides. Vous pouvez rechercher des caractères non valides à l’aide de la méthode GetInvalidPathChars().
-ou-
path est précédé ou contient uniquement un caractère deux-points (:).
path a la valeur null.
Le chemin d’accès spécifié, le nom de fichier ou les deux dépassent la longueur maximale définie par le système.
Le chemin spécifié n’est pas valide (par exemple, il se trouve sur un lecteur non mappé).
path contient un caractère deux-points (:) qui ne fait pas partie d’une étiquette de lecteur (« C :\ »).
Exemples
L’exemple suivant crée un répertoire avec des règles d’accès pour deux comptes d’utilisateur.
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
Remarques
Utilisez cette surcharge de méthode pour créer un répertoire avec contrôle d’accès. Par conséquent, il n’est pas possible d’accéder au répertoire avant l’application de la sécurité.
Tous les répertoires spécifiés dans le path paramètre sont créés, sauf s’ils existent déjà ou sauf si une partie n’est path pas valide. Le path paramètre spécifie un chemin d’accès au répertoire, et non un chemin d’accès au fichier. Si le répertoire existe déjà, cette méthode ne crée pas de répertoire, mais retourne un DirectoryInfo objet pour le répertoire existant.
Les espaces de fin sont supprimés de la fin du paramètre avant de path créer le répertoire.
Vous pouvez créer un répertoire sur un ordinateur distant, sur un partage auquel vous avez accès en écriture. Les chemins UNC sont pris en charge ; Par exemple, vous pouvez spécifier les éléments suivants pour path : \\2009\Archives\December dans Visual Basic et \\\\2009\\Archives\\December en C#.
La création d’un répertoire avec uniquement le caractère deux-points (:) n’est pas prise en charge et provoque la levée d’un NotSupportedException répertoire.