Sont-ils équivalents ou alternatifs? L'un d'eux est-il obsolète et si oui, lequel? Lequel est recommandé pour une utilisation dans une application Web ASP.NET. Mon objectif est d'extraire tous les fichiers d'un répertoire spécifique de manière récursive.
Directory est une classe statique qui fournit des méthodes statiques pour travailler avec des répertoires. DirectoryInfo est une instance d'une classe qui fournit des informations sur un répertoire spécifique. Ainsi, par exemple, si vous vouliez des informations sur C:\Temp:
var dirInfo = new DirectoryInfo("C:\\Temp");
if (dirInfo.Exists) {
FileInfo[] files = dirInfo.GetFiles("*.*", SearchOption.AllDirectories);
...
}
Si vous vouliez simplement les noms sous forme de chaînes, il pourrait être plus rapide et plus facile d'éviter de créer une instance de DirectoryInfo en utilisant les méthodes statiques de Directory.
if (Directory.Exists("C:\\Temp")) {
string[] files = Directory.GetFiles("C:\\Temp", "*.*", SearchOption.AllDirectories);
...
}
En bref, peu importe ce que vous utilisez tant qu'il fait ce que vous voulez. Aucun des deux n'est recommandé par rapport à l'autre.
Directory
classe est une classe statique qui peut être utilisée pour créer, déplacer, énumérer des répertoires et sous-répertoires. La classeDirectoryInfo
est également utilisée dans le même but que la classeDirectory
où ses membres sont des membres d'instance par opposition à la classeDirectory
. La principale différence entre les deux réside dans le moment où nous pouvons utiliser ces classes. La classeDirectory
peut être utilisée lorsque nous voulons une opération de dossier simple à la fois. Par exemple, vous devez supprimer le dossier et vous en sortir. Mais, la classeDirectoryInfo
est associée à un dossier et vous fournit toutes les opérations qui peuvent être effectuées sur le dossier. La classeDirectoryInfo
accepte un chemin comme paramètre lors de l'instanciation et vous fournit tout sur le dossier. Vous pouvez créer des sous-répertoires, déplacer, énumérer etc. CODEDIGEST
Une note importante également si vous devez effectuer plusieurs actions sur l'annuaire DirectoryInfo aura un avantage en termes de performances car il ne nécessitera pas de vérification des privilèges de sécurité pour chaque action.
Annuaire
Classe d'informations d'annuaire
DirectoryInfo est (essentiellement) la classe Directory mais est utilisé dans un contexte non statique. Si vous allez effectuer de nombreux appels au FileSystem, en particulier lorsqu'il s'agit du même dossier ou dans le sous-répertoire dudit dossier, MSDN suggère d'utiliser DirectoryInfo.
DirectoryInfo a un méthode DirectoryInfo.GetFiles qui répond probablement à vos besoins.