Работа с папками в 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. Добавьте в закладки постоянную ссылку.


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

Поставить ударение в слове (Декабрь 8, 2015)
Как создать качественную иконку в Microangelo Studio (Март 17, 2016)
Установить размер файла (Декабрь 4, 2015)
Сортировка массива классов по одному из полей (Декабрь 4, 2015)
Преобразовать одномерный массив в двумерный (Июль 20, 2016)


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