Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование - лекции.doc
Скачиваний:
7
Добавлен:
01.03.2025
Размер:
438.27 Кб
Скачать

Лекция 12

Работа с файлами и организация печати

System.IO

При проектировании приложения часто возникает необходимость в работе непосредственно с объектами файловой системы. При работе с файлами VB.NET используется пространство имён, класса которого позволяют создавать, копировать, перемещать, удалять файлы и каталоги, считывать информацию из файла и записывать информацию в файлы. Для выполнения основных операций с файлами предназначено два класса: File и FileInfo. Класс файлов содержит статические методы, при вызове которых требуется указание в качестве параметра имени файла. При работе с классом FileInfo с помощью конструктора создаётся экземпляр класса, представляющий конкретный файл.

Удаление файла

Для класса файл

Sub Delete (ByVal path As String)

path – полный путь к файлу

Для класса FileInfo

Sub Delete()

Пример: создать консольное приложение.

Sub Main()

Dim filename As String =”C:\MeFile.txt

If File.Exists(file name)Then

File.Delete(File name)

Else

Console.WriteLine(“файл не существует”)

End If

End Sub

Перемещение файла

Используется метод Move класса File

MoveTo класса FileInfo

Sub Move (ByVal source FileName As String, ByVal dest FileName As String)

Sub MoveTo (ByVal dest FileName As String)

Пример: берём какой-то файл, указываем с одного диска на другой. Создать консольное приложение. Мы должны сначала сделать процедуру импортирования.

Imports.System.IO

Module Module1

Dim sourceFileName As String =”C:\MyFile.txt”

Dim destFileName As String =”D:\MyFile.txt”

Sub Main()

Dim FileInfo As New FileInfo(sourceFileName)

MoveFile(FileInfo)

End Sub

Sub MoveFile(ByVal fileInfo As FileInfo) Console Clear()

If fileInfo.Exists()

If Not File.Exists(destFileName)Then

fileInfo.MoveTo(destFileNAme)

Else

Console.Writeline(“файл не существует”, destFileName)

End If

Else

Console.WriteLine(“файл не существует”, fileInfo, FullName)

End If

End Sub.

Лекция 13 Копирование файлов

Метод Copy класса File

Метод CopyTo класса FileInfo

Эти методы позволяют создавать новые файлы или перезаписывать существующие путём копирования исходного.

Sub Copy(ByVal sourse FileName As Srting, ByVal dest FileName As String, ByVal overwrite As Boolean)

Sub CopyTo(ByVal sourse As Srting, ByVal dest As String, ByVal overwrite As Boolean)

overwrite - можно ли перезаписывать файл назначения, если он уже существует.

Пример: создадим консольное приложение, которое позволит копировать файл с помощью метода Copy и разрешит перезапись.

Imports System.IO

Module Module1

Dim soursce FileName As String=”C:\Мои документы\MyFile.txt”

Dim destFileName As String=”D:\My File.txt”

Sub Main()

FileCopy(sourceFileName, destFileName)

End Sub

Sub FileCopy(ByValsourceFileName As String, ByVal dest FileName As String)

If File, Exists (soutceFileName) Then

File.Copy(sourceFileName, destFileName; True)

Else

Console.WriteLine (“файл не существует”, sourceFileName)

End If

End Sub

Чтение и запись файла

Важные операции при работе с файловыми потоками является чтение и запись данных. Содержит методы, позволяющие осуществить операции чтения и записи на уровне последовательности байтов. Класс FileStream поддерживает операции синхронного и асинхронного открытия, чтения и записи, последовательности байтов в указанный файл. Sub New (ByVal path As String, ByVal mode As FileMide, ByVal Access As File Access, By Val share As FileShare) As FileStream

Access – тип доступа к данным файла.

Share – режим разрешения работы с этим файлом.

Пример: создадим файл, запишем его в строку и прочтём его.

Imports System.IO

Module Module1

Sub Main()

Dim filestream As FileStream

Dim bytes As Byte()=NewSystem.Text.UTF8Encoding(True).GetBytes(“Запись в файл”)

Try – для поиска ошибок

Создадим файл

fileStream=NewFileStream(“c:\MyFile”, FileMode.Create)

добавим в этот файл строку

fileStream.Write(bytes, 0, bytes.length)

переместимся в начало файла

fileStreams.Seek(0, seekOrigin.Begin)

считываем по одному байту

For i=0 To(fileStream.Length-1)

Console.WriteLine(fileStream.ReadByte)

Next

Catch e As Exception

console.WriteLine(“произошла ошибка при передаче”) Finally

If Not(fileStriam Is Nothing)Then fileStream Close()

End Try

End Sub

End Module