Informations
Le sujet que vous avez demandé est indiqué ci-dessous. Toutefois, ce sujet ne figure pas dans la bibliothèque.

Directory, classe

Expose des méthodes statiques pour créer, déplacer et énumérer via des répertoires et sous-répertoires. Cette classe ne peut pas être héritée.

Espace de noms : System.IO
Assembly : mscorlib (dans mscorlib.dll)

[ComVisibleAttribute(true)] 
public static class Directory
/** @attribute ComVisibleAttribute(true) */ 
public final class Directory
ComVisibleAttribute(true) 
public final class Directory

Utilisez la classe Directory pour les opérations courantes telles que la copie, le déplacement, l'attribution de nouveau nom, la création et la suppression de répertoires. Vous pouvez également utiliser la classe Directory pour obtenir et définir les informations de DateTime relatives à la création, à l'accès et à l'écriture d'un répertoire.

Compte tenu que toutes les méthodes Directory sont statiques, il peut être plus efficace d'utiliser une méthode Directory plutôt qu'une méthode d'instance DirectoryInfo correspondante si vous voulez exécuter une seule action. La plupart des méthodes Directory nécessitent le chemin d'accès au répertoire que vous manipulez.

Les méthodes statiques de la classe Directory effectuent des contrôles de sécurité sur toutes les méthodes. Si vous souhaitez réutiliser un objet plusieurs fois, l'utilisation de la méthode d'instance correspondante de DirectoryInfo peut être préférable, parce que la vérification de la sécurité n'est pas toujours nécessaire.

RemarqueRemarque

Dans les membres qui acceptent un chemin d'accès en tant qu'une chaîne d'entrée, ce chemin d'accès doit être correctement construit ; sinon, une exception est levée. Par exemple, si un chemin d'accès est qualifié complet, mais commence par un espace, le chemin n'est pas rogné dans les méthodes de la classe. Par conséquent, le chemin d'accès est incorrect et une exception est levée. De façon similaire, un chemin d'accès ou une combinaison de chemins d'accès ne peut pas être qualifié complet deux fois. Par exemple, "c:\temp c:\windows" lève une exception dans la plupart des cas. Assurez-vous que vos chemins d'accès sont correctement construits lorsque vous utilisez des méthodes qui acceptent une chaîne de chemin d'accès.

Dans les membres qui acceptent un chemin d'accès, le chemin d'accès peut faire référence à un fichier ou simplement à un répertoire. Le chemin d'accès spécifié peut également faire référence à un chemin d'accès relatif ou à un chemin d'accès de convention d'affectation de noms (UNC) pour un nom de serveur et de partage. Par exemple, les chemins d'accès suivants sont tous valides :

  • "c:\\monRépertoire" en C# ou "c:\monRépertoire" en Visual Basic.

  • "c:\\monRépertoire\\monSousRépertoire" en C# ou "c:\MonRépertoire\MonSousRépertoire" en Visual Basic.

  • "c:\\monServeur\\monPartage" en C# ou "c:\monServeur\monPartage" en Visual Basic.

Par défaut, tous les utilisateurs ont l'autorisation d'accès complet en lecture/écriture aux nouveaux répertoires. Demander une autorisation pour un répertoire où la chaîne de chemin d'accès se termine par le caractère de séparation du répertoire revient à demander des autorisations pour tous les sous-répertoires qu'il contient (par exemple, "C:\Temp\"). Si les autorisations sont requises uniquement pour un répertoire spécifique, la chaîne doit se terminer par le caractère "." (par exemple, "C:\Temp\.").

Le tableau suivant répertorie des exemples d'autres tâches d'E/S courantes ou apparentées.

Pour effectuer cette opération...

Consultez l'exemple qui se trouve dans cette rubrique...

Créer un fichier texte.

Comment : écrire du texte dans un fichier

Écrire dans un fichier texte.

Comment : écrire du texte dans un fichier

Lire à partir d'un fichier texte.

Comment : lire du texte dans un fichier

Renommer ou déplacer un répertoire.

Directory.Move

DirectoryInfo.MoveTo

Supprimer un répertoire.

Directory.Delete

DirectoryInfo.Delete

Créer un répertoire.

CreateDirectory

Directory

Créer un sous-répertoire.

CreateSubdirectory

Afficher les fichiers d'un répertoire.

Name

Afficher les sous-répertoires d'un répertoire.

GetDirectories

GetDirectories

Afficher tous les fichiers de tous les sous-répertoires d'un répertoire.

GetFileSystemInfos

Rechercher la taille d'un répertoire.

Directory

Déterminer si un fichier existe.

Exists

Trier les fichiers d'un répertoire par taille.

GetFileSystemInfos

Déterminer si un répertoire existe.

Exists

L'exemple de code suivant détermine si un répertoire spécifié existe ou non, le supprime si tel est le cas et le crée dans le cas contraire. Cet exemple déplace ensuite le répertoire, crée un fichier dans le répertoire et compte les fichiers du répertoire.

using System;
using System.IO;

class Test 
{
    public static void Main() 
    {
        // Specify the directories you want to manipulate.
        string path = @"c:\MyDir";
        string target = @"c:\TestDir";

        try 
        {
            // Determine whether the directory exists.
            if (!Directory.Exists(path)) 
            {
                // Create the directory it does not exist.
                Directory.CreateDirectory(path);
            }

            if (Directory.Exists(target)) 
            {
                // Delete the target to ensure it is not there.
                Directory.Delete(target, true);
            }

            // Move the directory.
            Directory.Move(path, target);

            // Create a file in the directory.
            File.CreateText(target + @"\myfile.txt");

            // Count the files in the target directory.
            Console.WriteLine("The number of files in {0} is {1}",
                target, Directory.GetFiles(target).Length);
        } 
        catch (Exception e) 
        {
            Console.WriteLine("The process failed: {0}", e.ToString());
        } 
        finally {}
    }
}

import System.*;
import System.IO.*;

class Test
{
    public static void main(String[] args)
    {
        // Specify the directories you want to manipulate.
        String path = "c:\\MyDir";
        String target = "c:\\TestDir";

        try {
            // Determine whether the directory exists.
            if (!(Directory.Exists(path))) {
                // Create the directory it does not exist.
                Directory.CreateDirectory(path);
            }

            if (Directory.Exists(target)) {
                // Delete the target to ensure it is not there.
                Directory.Delete(target, true);
            }

            // Move the directory.
            Directory.Move(path, target);

            // Create a file in the directory.
            File.CreateText(target + "\\myfile.txt");

            // Count the files in the target directory.
            Console.WriteLine("The number of files in {0} is {1}", target,
                (Int32)Directory.GetFiles(target).length);
        }
        catch (System.Exception e) {
            Console.WriteLine("The process failed: {0}", e.ToString());
        }
        finally {
        }
    } //main
} //Test

L'exemple de code suivant montre comment calculer la taille d'un répertoire.

// The following example calculates the size of a directory
// and its subdirectories, if any, and displays the total size
// in bytes.

using System;
using System.IO;

public class ShowDirSize 
{
    public static long DirSize(DirectoryInfo d) 
    {    
        long Size = 0;    
        // Add file sizes.
        FileInfo[] fis = d.GetFiles();
        foreach (FileInfo fi in fis) 
        {      
            Size += fi.Length;    
        }
        // Add subdirectory sizes.
        DirectoryInfo[] dis = d.GetDirectories();
        foreach (DirectoryInfo di in dis) 
        {
            Size += DirSize(di);   
        }
        return(Size);  
    }
    public static void Main(string[] args) 
    {
        if (args.Length != 1) 
        {
            Console.WriteLine("You must provide a directory argument at the command line.");    
        } 
        else 
        {  
            DirectoryInfo d = new DirectoryInfo(args[0]);
            Console.WriteLine("The size of {0} and its subdirectories is {1} bytes.", d, DirSize(d));
        }
    }
}

System.Object
  System.IO.Directory

Les membres statiques publics (Shared en Visual Basic) de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile pour Pocket PC, Windows Mobile pour Smartphone, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition

Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.

.NET Framework

Prise en charge dans : 2.0, 1.1, 1.0

.NET Compact Framework

Prise en charge dans : 2.0, 1.0

Ajouts de la communauté

Afficher:
© 2014 Microsoft