Directory.CreateDirectory Méthode

Définition

Crée tous les répertoires dans un chemin d'accès spécifié.

Surcharges

CreateDirectory(String)

Crée tous les répertoires et sous-répertoires dans le chemin d'accès spécifié, sauf s'ils existent déjà.

CreateDirectory(String, DirectorySecurity)

Crée tous les répertoires dans le chemin d'accès 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 d'accès 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

DirectoryInfo

Objet qui représente le répertoire dans le chemin d'accès spécifié. Cet objet est retourné, qu'un répertoire existe déjà ou non dans le chemin d'accès spécifié.

Exceptions

Le répertoire spécifié par path est un fichier.

  • ou - Le nom de réseau est inconnu.

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, ne contient qu’un espace blanc ou contient un ou plusieurs caractères non valides. Vous pouvez rechercher les caractères non valides à l’aide de la méthode GetInvalidPathChars().

  • ou - Le préfixe ou le contenu de path est uniquement un signe deux-points (:).

path a la valeur null.

Le chemin et/ou le nom de fichier spécifiés dépassent la longueur maximale définie par le système.

Le chemin spécifié n’est pas valide (par exemple, il est sur un lecteur non mappé).

path contient un signe 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 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

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");  
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 path dans sont créés, sauf s’ils existent déjà ou si une partie de ces path répertoires n’est 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 path paramètre avant de 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 ce qui pathsuit : \\2009\Archives\December dans Visual Basic et \\\\2009\\Archives\\December en C#.

Création d’un répertoire avec uniquement le caractère deux-points (:) n’est pas pris en charge et entraîne la levée d’une NotSupportedException exception.

Sur les systèmes Unix, utilisez une barre oblique (/) comme séparateur de chemin d’accès.

Voir aussi

S’applique à

CreateDirectory(String, DirectorySecurity)

Crée tous les répertoires dans le chemin d'accès 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

DirectoryInfo

Objet qui représente le répertoire dans le chemin d'accès spécifié. Cet objet est retourné, qu'un répertoire existe déjà ou non dans le chemin d'accès spécifié.

Exceptions

Le répertoire spécifié par path est un fichier.

  • ou - Le nom de réseau est inconnu.

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, ne contient qu’un espace blanc ou contient un ou plusieurs caractères non valides. Vous pouvez rechercher les caractères non valides à l’aide de la méthode GetInvalidPathChars().

  • ou - Le préfixe ou le contenu de path est uniquement un signe deux-points (:).

path a la valeur null.

Le chemin et/ou le nom de fichier spécifiés dépassent la longueur maximale définie par le système.

Le chemin spécifié n’est pas valide (par exemple, il est sur un lecteur non mappé).

path contient un signe 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;

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

Remarques

Utilisez cette surcharge de méthode pour créer un répertoire avec contrôle d’accès. Il est donc impossible 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 de ces path répertoires n’est 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 path paramètre avant de 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 ce qui pathsuit : \\2009\Archives\December dans Visual Basic et \\\\2009\\Archives\\December en C#.

Création d’un répertoire avec uniquement le caractère deux-points (:) n’est pas pris en charge et provoque une NotSupportedException levée.

S’applique à