Каталог по сравнению с DirectoryInfo

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

41
задан Benjamin 21 May 2014 в 16:47
поделиться

5 ответов

Каталог - это статический класс, который предоставляет статические методы для работы с каталогами. 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);
    ...
}

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

49
ответ дан 27 November 2019 в 00:46
поделиться

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

2
ответ дан 27 November 2019 в 00:46
поделиться

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

1
ответ дан 27 November 2019 в 00:46
поделиться

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

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

7
ответ дан 27 November 2019 в 00:46
поделиться

Directory

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

Класс Directory Info

  1. DirectoryInfo не является статическим классом.
  2. Если пользователю необходимо выполнять множество операций над одним каталогом, таких как создание, удаление, перечисление файлов и т.д., то следует использовать класс DirectoryInfo.
  3. Для выполнения всех операций, связанных с каталогом, создается отдельный объект.
  4. Это эффективно, если вы собираетесь выполнять много операций над папкой, потому что после создания объекта он имеет всю необходимую информацию о папке, такую как время ее создания, время последнего доступа и атрибуты. Все члены класса DirectoryInfo являются членами экземпляра.
2
ответ дан 27 November 2019 в 00:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: