Лабораторна робота №11-12. Тема: Робота з файлами
1. Можливості vb
При проектуванні додатка досить часто виникає необхідність у роботі безпосередньо з файлами. Це потрібно, наприклад, для додавання, видалення файлів або каталогів, запису даних у файли або читання з них як програмно, так і в інтерактивному режимі. Також необхідність роботи з файлами виникає при створенні програми інсталяції розробленої програми на комп'ютери користувачів, читання даних з файлів при ініціалізації додатка з використанням файлів налаштування, організацію виведення файлів на друк.
При роботі з текстовими файлами в Visual Basic. NET застосовується простір імен System.IO, класи якого дозволяють створювати, копіювати, переміщувати, знищувати файли і каталоги, зчитувати дані з текстового файлу і записувати інформацію в нього і багато іншого. Розглянемо класи і їх методи, використовувані при роботі з файлами і каталогами, для кожної операції окремо.
Для виконання основних операцій з файлами, такими як отримання інформації про фото, створення нового файлу, видалення, копіювання і переміщення, призначені класи File і FileInfo. Вони аналогічні один одному і відрізняються тим, що клас File представляє собою статичні методи для роботи з файлами, a Fileinfo – динамічні.
Нагадаємо, що статичними є ті методи класу, які можуть виконуватися без попереднього створення об'єктів класу.
При роботі з текстовими файлами, наприклад, при записі в них інформації та зчитуванні даних, використовуються класи FileStream, StreamReader, StreamWriter. Для виконання побайтових операцій з файлами застосовують класи BinaryReader і BinaryWriter.
При використанні перерахованих класів необхідно імпортувати в програму простір імен System.IO
Imports System.IO
2. Робота з інформацією про файл
Для роботи з атрибутами файлів існують методи GetAttributes і SetAttributes класу File. Метод GetAttributes має наступний синтаксис:
Function GetAttributes (ByVal path As String) As FileAttributes
де path - повне ім'я файлу, що включає саме ім'я файлу і повний шлях до нього. За замовчуванням застосовується поточна папка і пристрій.
Метод повертає змінну типу FileAttributes, яка визначає атрибути файлу.
Константа Опис
Archive Архівний файл
Compressed Стиснутий файл
Device Пристрій
Directory Каталог (папка)
Encrypted Зашифрований файл
Hidden Прихований файл
Normal Звичайний файл, у якого не встановлено атрибути
Offline Дані про файл не доступні в даний момент
Readonly Файл тільки для читання
System Системний файл
Temporary Тимчасовий файл
Аналогічним чином працює метод SetAttributes, що виконує установку атрибутів файлів:
Sub SetAttributes (ByVal path As String, ByVal fileAttributes As FileAttributes)
де path - повне ім'я файлу, що включає саме ім'я файлу і повний шлях до нього; fileAttributes - константа атрибута файлу.
Для того щоб задати кілька атрибутів, можна просто підсумувати зазначені константи. Наприклад, для установки атрибутів файлу Hidden і Readonly необхідно використовувати метод setAttributes такого вигляду:
File.SetAttributes(f, FileAttributes.Archive + FileAttributes.Hidden + FileAttributes.ReadOnly)
Методи класу File, використовувані для отримання даних про файл
GetCreationTime – Повертає дату і час створення файлу
Function GetCreationTime(ByVal path As String) As DateTime GetLastAccessTime
GetLastAccessTime – Повертає дату і час останнього доступу до файлу
Function GetLastAccessTime(ByVal path As String) As DateTime GetLastWriteTime
GetLastWriteTime – Повертає дату і час останнього запису даних у файл
Function GetLastWriteTime(ByVal path As String) As DateTime SetCreationTime
SetCreationTime – Встановлює дату і час створення файлу
Sub SetCreationTime(ByVal path As String, ByVal creationTime As DateTime)
SetLastAccessTime – Встановлює дату і час останнього доступу до файлу
Sub SetLastAccessTime(ByVal path As String, ByVal lastAccessTime As DateTime)
SetLastWriteTime – Встановлює дату і час останнього запису в файл
Sub SetLastWriteTime(ByVal path As String, ByVal lastWriteTime As DateTime)
Для отримання інформації про файл можна також скористатися властивостями класу Fileinfo. Щоб це зробити, слід створити екземпляр класу Fileinfo за допомогою його конструктора:
Sub New FileInfo(fileName)
де fileName є повним ім'ям файлу.
Властивості класу Fileinfo
Attributes |
FileAttributes |
Повертає або встановлює атрибути файлу |
CreationTime |
DateTime |
Повертає або встановлює дату і час створення файлу |
Directory |
String |
Повертає батьківський каталог |
DirectoryName |
String |
Повертає повне ім'я батьківського каталогу |
Exists |
Boolean |
Повертає значення True у разі існування файлу, інакше – False |
Extension |
String |
Повертає розширення файлу |
FullName |
String |
Повертає повне ім'я файлу, включаючи ім'я файлу і шлях до нього |
Length |
Long |
Повертає розмір файлу в байтах |
LastAccessTime |
DateTime |
Повертає або встановлює дату і час останнього доступу до файлу |
LastWriteTime |
DateTime |
Повертає або встановлює дату і час останнього запису в файл |
Name |
String |
Повертає ім’я файлу |
Як приклад створимо консольний додаток, який за допомогою класу Fileinfo дозволить виводити повне ім'я файлу, його розмір, час і дату створення та атрибути. Процедура Main програми буде мати наступний вигляд:
Sub Main()
Dim fileName As String = "d:\tmp23F.pdf"
If File.Exists(fileName) Then
Dim fileinfo As New Fileinfo(fileName)
Console.WriteLine("Имя файла: {0}. ", fileinfo.FullName())
Console.WriteLine("Размер файла: {0}", fileinfo.Length())
Console.WriteLine("Дата создания: {0}", fileinfo.CreationTime)
Console.WriteLine("Атрибуты: {0}", fileinfo.Attributes)
Console.ReadLine()
Else
Console.WriteLine("Файл не существует")
Console.ReadLine()
End If
End Sub