VB.net - Урок 7 - Работа с папками
В этой статье мы расскажем о работе с папками из программы на VB.net.
Создание, удаление, перемещение, переименование, инфо, изменение атрибутов, поиск
Для работы с директориями нам понадобятся дополнительные библиотеки ввода-вывода
Imports System
Imports System.IO
Создание
Путь для новой папки - D:\testdel\1 - будет создан, если выбранный диск существует. Все промежуточные папки также будут созданы. Создания папки выполняется таким кодом:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
System.IO.Directory.CreateDirectory("D:testdel\1") ' Создаем папку с именем 1
End Sub
Удаление
Если нужная папка существует, то ее можно удалить. При чем удаляется только конечная папка со всем содержимым, а промежуточные папки - останутся. В данном примере удаляем папку "1", а "testdel" - останется.
'проверяем, есть ли папка
If IO.Directory.Exists("D:\testdel\1") Then
System.IO.Directory.Delete("D:testdel\1", True) ' Удаляем папку
Else
MsgBox("папки нет(")
End If
Перенос и переименование
Для переноса и переименования используется один и тот же код. Фактически это одинаковые операции, только для переноса меняется промежуточный путь, оставляя название, а для переименования - наоборот.
При переносе, содержимое также перемещается.
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
System.IO.Directory.Move("D:testdel\1", "D:testdel\2") ' Переименовка
System.IO.Directory.Move("D:testdel\2", "D:drugajPapka\2") ' Перенос
End Sub
Инфо о папке
Примеры вариантов: Создание, открытие и изменение папки. Если папки не существует, тогда дата будет 1 января 1601 года.
Дата-заглушка. |
Правильная дата |
|
|
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
MsgBox("Папка создана: " & System.IO.Directory.GetCreationTime("D:testdel\1"))
MsgBox("Папка открыта: " & System.IO.Directory.GetLastAccessTime("D:testdel\1"))
MsgBox("Папка изменена: " & System.IO.Directory.GetLastWriteTime("D:testdel\1"))
End Sub
Изменение атрибутов папки
Dim DirInfo As New IO.DirectoryInfo("D:testdel\1")
DirInfo.Attributes = IO.FileAttributes.Hidden
Имеется неплохая возможность комбинировать атрибуты, например, делаем папку скрытой и системной:
DirInfo.Attributes = IO.FileAttributes.Hidden + IO.FileAttributes.System
Вывод списка подпапок и файлов в данной директории
Дополнительно используем ListBox. В данном случае это папка C:\Windows\System32
Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
'файлы и подпапки
ListBox1.Items.AddRange(IO.Directory.GetFileSystemEntries("C:\Windows\System32"))
End Sub
Получение списка файлов
(1 вариант)
Если необходимы только файлы (определенных расширений), создаем фильтр.
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
'переменная - путь к папке
Dim fold
'Очищаем ЛБ
ListBox1.Items.Clear()
'записываем в переменную путь
fold = "C:\Windows\System32"
'задаем переменную как массив строк! - содержащих все файлы типа -*.swf в папке fold (текущей)
Dim Files As String() = IO.Directory.GetFiles(fold, "*.dll", IO.SearchOption.TopDirectoryOnly)
'добавляем файлы в ЛБ
ListBox1.Items.AddRange(Files)
End Sub
(2 вариант)
Есть еще одна возможность поиска в папке файлов с определенным расширением.
txtEx.Text - вводим расширение *.xxx. Расширение вводим полностью (не tx а txt)
Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
TextBox1.Text = ""
Dim Files() As String = IO.Directory.GetFiles("C:\Windows\System32", txtEx.Text, IO.SearchOption.TopDirectoryOnly)
Dim razm = Files.Length - 1
For n = 0 To (razm)
TextBox1.Text += Files(n) + vbCrLf
Next
End Sub
Это были примеры для работы с папками. Комбинируя их можно создавать как вирусы, так и поисковики. Все в ваших руках.
Смотреть видео
В начало
|