Подтвердить что ты не робот

Directory vs DirectoryInfo

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

4b9b3361

Ответ 1

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

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

Если вам просто нужны имена в виде строк, возможно, быстрее и проще избежать создания экземпляра DirectoryInfo с помощью статических методов Directory.

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

Короче говоря, на самом деле не имеет значения, что вы используете, пока оно делает то, что вы хотите. Ни один из них не рекомендуется по отношению к другому.

Ответ 2

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

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

Ответ 3

Каталог

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

Справочный информационный класс

  • DirectoryInfo не является статическим классом.
  • Если пользователю требуется выполнить множество операций в одном каталоге, например создание, удаление, список файлов и т.д., то следует использовать класс DirectoryInfo.
  • Для выполнения всех операций, связанных с каталогом, создается отдельный объект.
  • Эффективно, если вы собираетесь выполнять много операций в папке, потому что, как только объект будет создан, он имеет всю необходимую информацию о папке, такую ​​как время ее создания, время последнего доступа и атрибуты. Все члены класса DirectoryInfo являются членами экземпляра.

Ответ 4

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

Ответ 5

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