LoveRead.info » Книги » Разная литература » Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен

Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен

Книгу Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен читаем онлайн бесплатно полную версию! Чтобы начать читать не надо регистрации. Напомним, что читать онлайн вы можете не только на компьютере, но и на андроид (Android), iPhone и iPad. Приятного чтения!

178 0 18:04, 26-08-2023
Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен
26 август 2023

Книга Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен читать онлайн бесплатно без регистрации

В 10-м издании книги описаны новейшие возможности языка C# 9 и .NET 5 вместе с подробным "закулисным" обсуждением, призванным расширить навыки критического мышления разработчиков, когда речь идет об их ремесле. Книга охватывает ASP.NET Core, Entity Framework Core и многое другое наряду с последними обновлениями унифицированной платформы .NET, начиная с улучшений показателей производительности настольных приложений Windows в .NET 5 и обновления инструментария XAML и заканчивая расширенным рассмотрением файлов данных и способов обработки данных. Все примеры кода были переписаны с учетом возможностей последнего выпуска C# 9.

    1 ... 236 237 238 239 240 241 242 243 244 ... 407
    Перейти на страницу:
    class="p1">    Console.WriteLine("Format: {0}", d.DriveFormat);  // формат устройства

        Console.WriteLine("Label: {0}", d.VolumeLabel);   // метка тома

      }

      Console.WriteLine();

    }

    Console.ReadLine();

    Вот возможный вывод:

    ***** Fun with DriveInfo *****

    Name: C:

    Type: Fixed

    Free space: 284131119104

    Format: NTFS

    Label: OS

    Name: M:

    Type: Network

    Free space: 4711871942656

    Format: NTFS

    Label: DigitalMedia

    К этому моменту вы изучили несколько основных линий поведения классов Directory, DirectoryInfо и DriveInfo. Далее вы ознакомитесь с тем, как создавать, открывать, закрывать и удалять файлы, находящиеся в заданном каталоге.

    Работа с типом FileInfo

    Как было показано в предыдущем примере DirectoryApp, класс FileInfo позволяет получать сведения о существующих файлах на жестком диске (такие как время создания, размер и атрибуты) и помогает создавать, копировать, перемещать и удалять файлы. В дополнение к набору функциональности, унаследованной от FileSystemInfo, класс FileInfo имеет ряд уникальных членов,которые описаны в табл. 20.4.

    Обратите внимание, что большинство методов класса FileInfo возвращают специфический объект ввода-вывода (например, FileStream и StreamWriter), который позволяет начать чтение и запись данных в ассоциированный файл во множестве форматов. Вскоре мы исследуем указанные типы, но прежде чем рассмотреть работающий пример, давайте изучим различные способы получения дескриптора файла с использованием класса FileInfo.

    Метод FileInfo.Create()

    Следующий набор примеров находится в проекте консольного приложения по имени SimpleFileIO. Один из способов создания дескриптора файла предусматривает применение метода FileInfo.Create():

    using System;

    using System.IO;

    Console.WriteLine("***** Simple IO with the File Type *****n");

    // Измените это на папку на своей машине, к которой вы имеете доступ

    // по чтению/записи или запускайте приложение от имени администратора.

    var fileName = $@"C{Path.VolumeSeparatorChar}

                       {Path.DirectorySeparatorChar}temp

                       {Path.DirectorySeparatorChar}Test.dat";

    // Создать новый файл на диске С:.

    FileInfo f = new FileInfo(fileName);

    FileStream fs = f.Create();

    // Использовать объект FileStream...

    // Закрыть файловый поток.

    fs.Close();

    На заметку! В зависимости от имеющихся у вас пользовательских разрешений и конфигурации системы примеры, которые здесь рассматриваются, могут требовать запуска Visual Studio от имени администратора.

    Метод FileInfo.Create() возвращает тип FileStream, который предоставляет синхронную и асинхронную операции записи/чтения лежащего в его основе файла. Имейте в виду, что объект FileStream, возвращаемый FileInfo.Create(), открывает полный доступ по чтению и записи всем пользователям.

    Также обратите внимание, что после окончания работы с текущим объектом FileStream необходимо обеспечить закрытие его дескриптора для освобождения внутренних неуправляемых ресурсов потока. Учитывая, что FileStream реализует интерфейс IDisposable, можно использовать блок using и позволить компилятору сгенерировать логику завершения (подробности ищите в главе 8):

    var fileName = $@"C{Path.VolumeSeparatorChar}

                       {Path.DirectorySeparatorChar}Test.dat";

    ...

    // Поместить файловый поток внутрь оператора using.

    FileInfo f1 = new FileInfo(fileName);

    using (FileStream fs1 = f1.Create())

    {

      // Использовать объект FileStream...

    }

    f1.Delete();

    На заметку! Почти все примеры в этой главе содержат операторы using. Можно также использовать новый синтаксис объявлений using, но было решено придерживаться операторов using, чтобы сосредоточить примеры на исследуемых компонентах System.IO.

    Метод FileInfо.Open()

    С помощью метода FileInfo.Open() можно открывать существующие файлы, а также создавать новые файлы с более высокой точностью представления, чем обеспечивает метод FileInfo.Create(), поскольку Open() обычно принимает несколько параметров для описания общей структуры файла, с которым будет производиться работа. В результате вызова Open() возвращается объект FileStream. Взгляните на следующий код:

    var fileName = $@"C{Path.VolumeSeparatorChar}

                       {Path.DirectorySeparatorChar}Test.dat";

    ...

    // Создать новый файл посредством FileInfо.Open().

    FileInfo f2 = new FileInfo(fileName);

    using(FileStream fs2 = f2.Open(FileMode.OpenOrCreate,

      FileAccess.ReadWrite, FileShare.None))

    {

      // Использовать объект FileStream...

    }

    f2.Delete();

    Эта версия перегруженного метода Open() требует передачи трех параметров. Первый параметр указывает общий тип запроса ввода-вывода (например, создать новый файл, открыть существующий файл или дописать в файл), который представлен в виде перечисления FileMode (описание его членов приведено в табл. 20.5):

    public enum FileMode

    {

      CreateNew,

      Create,

      Open,

      OpenOrCreate,

      Truncate,

      Append

    }

    Второй параметр метода Open() — значение перечисления FileAccess — служит для определения поведения чтения/записи лежащего в основе потока:

    public enum FileAccess

    {

      Read,

      Write,

      ReadWrite

    }

    Наконец, третий параметр метода Open() — значение перечисления FileShare — указывает, каким образом файл может совместно использоваться другими файловыми дескрипторами:

    public enum FileShare

    {

      None,

      Read,

      Write,

      ReadWrite,

      Delete,

      Inheritable

    }

    Методы FileInfо.OpenRead() и FileInfо.OpenWrite()

    Метод FileInfо.Open() позволяет получить дескриптор файла в гибкой манере, но класс FileInfо также предлагает методы OpenRead() и OpenWrite(). Как и можно было ожидать, указанные методы возвращают подходящим образом сконфигурированный только для чтения или только для записи объект FileStream без необходимости в предоставлении значений разных перечислений. Подобно FileInfо.Create() и FileInfо.Open() методы OpenRead() и OpenWrite() возвращают объект FileStream.

    Обратите внимание, что метод OpenRead() требует, чтобы файл существовал. Следующий код создает файл и затем закрывает объект FileStream, так что он может использоваться методом OpenRead():

    f3.Create().Close();

    Вот полный пример:

    var fileName = $@"C{Path.VolumeSeparatorChar}

                       {Path.DirectorySeparatorChar}Test.dat";

    ...

    // Получить объект FileStream с правами только для чтения.

    FileInfo f3 = new FileInfo(fileName);

    // Перед использованием OpenRead() файл должен существовать.

    f3.Create().Close();

    using(FileStream readOnlyStream = f3.OpenRead())

    {

      // Использовать объект FileStream...

    }

    f3.Delete();

    // Теперь получить объект FileStream с правами только для записи.

    FileInfo f4 = new FileInfo(fileName);

    using(FileStream writeOnlyStream = f4.OpenWrite())

    {

     

    1 ... 236 237 238 239 240 241 242 243 244 ... 407
    Перейти на страницу:
    1. Жалоба
    Отзывы - 0

    Прочитали книгу? Предлагаем вам поделится своим отзывом от прочитанного(прослушанного)! Ваш отзыв будет полезен читателям, которые еще только собираются познакомиться с произведением.


    Уважаемые читатели, слушатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

    • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
    • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
    • 3. Просьба отказаться от нецензурной лексики.
    • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

    Надеемся на Ваше понимание и благоразумие. С уважением, администратор LoveRead.info.


    Установить VPN и читай слушай бесплатно

    Новые отзывы

    1. Борис Борис14 июнь 00:50 Колокола в России тем и отличались от западных что раскачиаали именно язык колокола,а не сам колокол! Авторы что-жертвы ЕГЭ? Не... Соединенные Штаты России 3 - Полина Ром
    2. Людмила Хофман Людмила Хофман10 июнь 22:13 У меня перевернулся мир после прочтения ваших книг! Так приятно и чисто на душе, ведь по сути неважно кто с кем , а только любовь... Долгая игра - Рейчел Рид
    3. Анна Анна08 июнь 11:28 Спасибо за новую историю жизни и любви на сайте,прочитала с удовольствием .... Давай поженимся - Юлия Резник
    Все комметарии
    Новинки бесплатной онлайн библиотеки