Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Троелсен Эндрю, "Язык программирования C#9 и платформа .NET5" бесплатно, без регистрации.
<b> // Записать данные.</b> bw.Write(aDouble); bw.Write(anInt); bw.Write(aString);}Console.WriteLine("Done!");Console.ReadLine();Обратите внимание, что объект
FileStreamFileInfo.OpenWrite()BinaryWriterBinaryWriterStreamFileStreamMemoryStreamBufferedStreamMemoryStreamДля чтения данных из файла
BinFile.datBinaryReader...FileInfo f = new FileInfo("BinFile.dat");...<b>// Читать двоичные данные из потока.</b>using(BinaryReader br = new BinaryReader(f.OpenRead())){ Console.WriteLine(br.ReadDouble()); Console.WriteLine(br.ReadInt32()); Console.WriteLine(br.ReadString());}Console.ReadLine();Программное слежение за файлами
Теперь, когда вы знаете, как применять различные средства чтения и записи, давайте займемся исследованием роли класса
FileSystemWatcherFileSystemWatcherSystemIO.NotifyFilters:public enum NotifyFilters{ Attributes, CreationTime, DirectoryName, FileName, LastAccess, LastWrite, Security, Size}Чтобы начать работу с типом
FileSystemWatcherPathFilterВ настоящий момент можно выбрать обработку событий
ChangedCreatedDeletedFileSystemEventHandler<b>// Делегат FileSystemEventHandler должен указывать</b><b>// на методы, соответствующие следующей сигнатуре.</b>void MyNotificationHandler(object source, FileSystemEventArgs e)Событие
RenamedRenamedEventHandler// Делегат RenamedEventHandler должен указывать// на методы, соответствующие следующей сигнатуре.<b>void MyRenamedHandler(object source, RenamedEventArgs e)</b>В то время как для обработки каждого события можно применять традиционный синтаксис делегатов/событий, вы определенно будете использовать синтаксис лямбда-выражений.
Давайте взглянем на процесс слежения за файлом. Показанный ниже проект консольного приложения(
MyDirectoryWatcherusingSystem.IO*.txtbindebugnet5.0using System;using System.IO;Console.WriteLine("***** The Amazing File Watcher App *****n");<b>// Установить путь к каталогу, за которым нужно наблюдать.</b>FileSystemWatcher watcher = new FileSystemWatcher();try{ watcher.Path = @".";}catch(ArgumentException ex){ Console.WriteLine(ex.Message); return;}<b>// Указать цели наблюдения.</b>watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName;<b>// Следить только за текстовыми файлами.</b>watcher.Filter = "*.txt";<b>// Добавить обработчики событий.</b><b>// Указать, что будет происходить при изменении,</b>