Справочник против Справочника

Они эквивалентны или альтернативы друг другу? Любой из них устарел, и если да, то какой? Какой из них рекомендуется для использования в веб-приложении ASP.NET. Моя цель - рекурсивно извлечь все файлы из определенного каталога.

5 ответов

Решение

Каталог - это статический класс, который предоставляет статические методы для работы с каталогами. DirectoryInfo - это экземпляр класса, который предоставляет информацию о конкретном каталоге. Например, если вам нужна информация о C: \ Temp:

var dirInfo = new DirectoryInfo("C:\\Temp");
if (dirInfo.Exists) {
    FileInfo[] files = dirInfo.GetFiles("*.*", SearchOption.AllDirectories);
    ...
}

If you just wanted the names as strings it might be quicker and easier to avoid creating an instance of DirectoryInfo by using the static methods of Directory.

if (Directory.Exists("C:\\Temp")) {
    string[] files = Directory.GetFiles("C:\\Temp", "*.*", SearchOption.AllDirectories);
    ...
}

In short, it really doesn't matter which you use as long as it does what you want. Neither is recommended over the other.

Directory Класс - это статический класс, который можно использовать для создания, перемещения, перечисления каталогов и подкаталогов. DirectoryInfo класс также служит для той же цели, как Directory класс, где его члены являются членами экземпляра, в отличие от Directory учебный класс. Основное различие между ними заключается в том, когда мы можем использовать эти классы. Directory Класс можно использовать, когда мы хотим сразу выполнить простую операцию с папкой. Например, вам нужно удалить папку и уйти. Но DirectoryInfo Класс связан с папкой и предоставляет вам все операции, которые можно выполнить над папкой. DirectoryInfo Класс принимает путь в качестве параметра при создании экземпляра и предоставляет вам все в папке. Вы можете создавать подкаталоги, перемещать, перечислять и т. Д. CODEDIGEST

Также важное замечание, если вам нужно выполнить несколько действий с каталогом DirectoryInfo, будет иметь преимущество в производительности, так как не потребует проверки привилегий безопасности для каждого действия.

Каталог

  1. Каталог является статическим классом.
  2. Это следует использовать, когда мы хотим выполнить одну операцию в папке.
  3. Поскольку нет никаких требований по созданию объекта для класса Directory, поэтому нет никаких накладных расходов для его использования.

Справочник Инфо Класс

  1. Directory Info не является статическим классом.
  2. Если пользователю необходимо выполнить много операций с одним каталогом, таких как создание, удаление, просмотр файлов и т. Д., Следует использовать класс Directory Info.
  3. Для выполнения всех операций, связанных с каталогом, создается отдельный объект.
  4. Это эффективно, если вы собираетесь выполнять много операций с папкой, потому что, как только объект создан, у него есть вся необходимая информация о папке, такая как время ее создания, время последнего доступа и атрибуты. Все члены класса Directory Info являются членами экземпляра.

DirectoryInfo (в основном) класс Directory, но используется в нестатическом контексте. Если вы собираетесь делать много обращений к FileSystem, особенно когда она находится в той же папке или в подкаталоге указанной папки, MSDN предлагает использовать DirectoryInfo.

В DirectoryInfo есть метод DirectoryInfo.GetFiles, который, вероятно, соответствует вашим требованиям.

Другие вопросы по тегам