Каталог против Directoryinfoкласс

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

5 ответов


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

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

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

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

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


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

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


каталог

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

Класс Информации Каталога

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

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


Directoryinfoкласс есть Directoryinfoкласс.Метод GetFiles это, вероятно, соответствует вашим требованиям.