Работа с папками в VB .NET

Как создать папку в указанном месте

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

Как удалить папку, даже если она не пуста

Второй параметр указывает на разрешение удалить все файлы и каталоги
С параметром False в случае наличия в каталоге по крайней мере одного файла или папки будет сгенерировано исключение

Узнать, существует ли папка

Получить из папки все директории

Раскрыть

2 последних параметра в функции являются необязательными, первый из них задает маску поиска.

Пример маски Что будет найдено
fff Милисекунды
* Ищет папки, в имени которых могут содержаться любые допустимые символы
Новая папка* Ищет папки, имя которых начинается с «Новая папка», это может быть «Новая папка», «Новая папка 2», «Новая папка, созданная 27.03.2011 г.»
*2* Ищет папки, в имени которых содержится цифра «2», и неважно, вначале, в конце или середине
*пка Ищет папки, имя которых заканчивается на «пка», с такой маской мы найдем «Новая папка», но не «Новая папка 2»
????? Ищет папки, в имени которых содержится 5 любых допустимых символов
???к? Ищет папки, в имени которых содержится 5 символов при обязательном условии, что четвертый из них — «к»

По умолчанию возвращаются все папки (любое имя).

Второй параметр — глубина поиска, с IO.SearchOption.TopDirectoryOnly мы ищем папки только в текущей директории
тогда как с IO.SearchOption.AllDirectories поиск будет осуществлен и во всех вложенных подкаталогах.

По умолчанию поиск производится только в текущей папке.

[свернуть]

Как получить все файлы, а также папки в директории

Возвращаются папки и файлы из папки System32, но не ее подкаталогов.

Получить все файлы из директории

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

Как узнать корневой раздел папки

Узнать время последнего обращения к папке

Время последней записи в каталог

Узнать имя родительского каталога

Обращаю внимание, что в этом случае необходимо указывать определенное свойство, нас интересует FullName.
Если нужен не полный путь, а лишь имя родительского каталога, то выбираем свойство Name
На других свойствах заострять внимание не будем.

Как переместить каталог из одного места в другое

Этот метод является ничем иным, как и переименование

Установить дату создания для каталога

Можно указать и время

Установить дату последнего доступа к каталогу

Установить текущий каталог для приложения

Теперь наша программа без указания явного пути будет работать с файлами и папками именно в этом каталоге. Например, записываем какой-то текст в файл:

Мы привыкли, что такие файлы пишутся в одной папке с нашей программой. Однако в этот раз все наши файлы без точного указания пути будут расположены в папке «C:\Dir»
Поэтому следует соблюдать осторожность.

Установить для каталога определенные атрибуты

Раскрыть

Как и в примере с файлами, узнать атрибут можно так:

Атрибуты возвращаются в численном выражении, поэтому как и в примере с файлами нужна функция преобразования чисел в
удобочитаемый для пользователя формат. Обсуждать здесь это не будем.

Имеется неплохая возможность комбинировать атрибуты, например, делаем папку скрытой и системной:

[свернуть]

Создать в директории несколько вложенных друг в друга поддиректорий

Узнать имя папки без полного пути

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

Скопировать каталог

Булевый параметр означает перезапись





Запись опубликована в рубрике Полезные коды на Visual Basic .NET, VB .NET FAQ. Добавьте в закладки постоянную ссылку.


Что еще можно почитать

Программа «Мои файлы» (старая версия) (Декабрь 4, 2015)
Программа для удаления остатков McAfee «No McAfee» (Декабрь 4, 2015)
Получить название всех сетевых адаптеров (Декабрь 4, 2015)
Поиск гласных букв в тексте (Июль 21, 2016)
Анимированная новогодняя елка (Декабрь 16, 2015)


Добавить комментарий