MyTetra Share
Делитесь знаниями!
Работа с папками в VB .NET
23.03.2018
23:14
Текстовые метки: VB .NET
Раздел: VB

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

Опубликовано Декабрь 30, 2015 автором Памирыч

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


Visual Basic .NET

IO.Directory.CreateDirectory("C:\Dir")

'или

MkDir("C:\Dir")

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


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


Visual Basic .NET

IO.Directory.Delete("C:\Dir", True)

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


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


Visual Basic .NET

If IO.Directory.Exists("C:\Dir") Then

MsgBox("Directory Exists")

End If


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

Раскрыть


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


Visual Basic .NET

ListBox1.Items.AddRange(IO.Directory.GetFileSystemEntries("C:\Windows\System32"))

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


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


Visual Basic .NET

Dim Files() As String = IO.Directory.GetFiles("C:\Dir", "*.txt", IO.SearchOption.TopDirectoryOnly)

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


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


Visual Basic .NET

MsgBox(IO.Directory.GetDirectoryRoot("C:\Windows\System32"))


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


Visual Basic .NET

MsgBox(IO.Directory.GetLastAccessTime("C:\Windows\System32"))


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


Visual Basic .NET

MsgBox(IO.Directory.GetLastWriteTime("C:\Windows\System32"))


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


Visual Basic .NET

MsgBox(IO.Directory.GetParent("C:\Windows\System32").FullName)

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


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


Visual Basic .NET

IO.Directory.Move("C:\Dir", "C:\Dir2")

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


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


Visual Basic .NET

Dim D As Date = #12/31/2000#

IO.Directory.SetCreationTime("C:\Dir", D)

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


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


Visual Basic .NET

Dim D As Date = #5/20/2050#

IO.Directory.SetLastAccessTime("C:\Dir", D)

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


Visual Basic .NET

IO.Directory.SetCurrentDirectory("C:\Dir")

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


Visual Basic .NET

IO.File.WriteAllText("TestFile.txt", "Content")

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


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

Раскрыть


Visual Basic .NET

Dim DirInfo As New IO.DirectoryInfo("C:\Dir")

DirInfo.Attributes = IO.FileAttributes.Hidden

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


Visual Basic .NET

Dim DirInfo As New IO.DirectoryInfo("C:\Dir")

MsgBox(DirInfo.Attributes)

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

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


Visual Basic .NET


DirInfo.Attributes = IO.FileAttributes.Hidden + IO.FileAttributes.System

[свернуть]


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


Visual Basic .NET


Dim DirInfo As New IO.DirectoryInfo("C:\Dir")

DirInfo.CreateSubdirectory("Dir1\Dir2\Dir3")


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


Visual Basic .NET


Dim DirInfo As New IO.DirectoryInfo("C:\Dir")

MsgBox(DirInfo.Name)

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


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


Visual Basic .NET


My.Computer.FileSystem.CopyDirectory("C:\Setup", "F:\Setup", True)

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



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

Так же в этом разделе:
 
MyTetra Share v.0.52
Яндекс индекс цитирования