Справочник против Справочника
Они эквивалентны или альтернативы друг другу? Любой из них устарел, и если да, то какой? Какой из них рекомендуется для использования в веб-приложении 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, будет иметь преимущество в производительности, так как не потребует проверки привилегий безопасности для каждого действия.
Каталог
- Каталог является статическим классом.
- Это следует использовать, когда мы хотим выполнить одну операцию в папке.
- Поскольку нет никаких требований по созданию объекта для класса Directory, поэтому нет никаких накладных расходов для его использования.
Справочник Инфо Класс
- Directory Info не является статическим классом.
- Если пользователю необходимо выполнить много операций с одним каталогом, таких как создание, удаление, просмотр файлов и т. Д., Следует использовать класс Directory Info.
- Для выполнения всех операций, связанных с каталогом, создается отдельный объект.
- Это эффективно, если вы собираетесь выполнять много операций с папкой, потому что, как только объект создан, у него есть вся необходимая информация о папке, такая как время ее создания, время последнего доступа и атрибуты. Все члены класса Directory Info являются членами экземпляра.
DirectoryInfo (в основном) класс Directory, но используется в нестатическом контексте. Если вы собираетесь делать много обращений к FileSystem, особенно когда она находится в той же папке или в подкаталоге указанной папки, MSDN предлагает использовать DirectoryInfo.
В DirectoryInfo есть метод DirectoryInfo.GetFiles, который, вероятно, соответствует вашим требованиям.