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 ... 235 236 237 238 239 240 241 242 243 ... 407
    Перейти на страницу:
    далее новый статический метод, который создает объект DirectoryInfo, отображенный на С:Windows (при необходимости подкорректируйте путь), и выводит интересные статистические данные:

    using System;

    using System.IO;

    Console.WriteLine("***** Fun with Directory(Info) *****n");

    ShowWindowsDirectoryInfo();

    Console.ReadLine();

    static void ShowWindowsDirectoryInfo()

    {

      // Вывести информацию о каталоге. В случае работы не под

      // управлением Windows подключитесь к другому каталогу.

      DirectoryInfo dir = new DirectoryInfo($@"C{Path.VolumeSeparatorChar}

      {Path.DirectorySeparatorChar}Windows");

      Console.WriteLine("***** Directory Info *****");

                            // Информация о каталоге

      Console.WriteLine("FullName: {0}", dir.FullName);     // Полное имя

      Console.WriteLine("Name: {0}", dir.Name);             // Имя каталога

      Console.WriteLine("Parent: {0}", dir.Parent);         // Родительский каталог

      Console.WriteLine("Creation: {0}", dir.CreationTime); // Время создания

      Console.WriteLine("Attributes: {0}", dir.Attributes); // Атрибуты

      Console.WriteLine("Root: {0}", dir.Root);             // Корневой каталог

      Console.WriteLine("**************************n");

    }

    Вывод у вас может отличаться, но быть похожим:

    ***** Fun with Directory(Info) *****

    ***** Directory Info *****

    FullName: C:Windows

    Name: Windows

    Parent:

    Creation: 3/19/2019 00:37:22

    Attributes: Directory

    Root: C:

    **************************

    Перечисление файлов с помощью типа DirectoryInfо

    В дополнение к получению базовых сведений о существующем каталоге текущий пример можно расширить, чтобы задействовать некоторые методы типа DirectoryInfо. Первым делом мы используем метод GetFiles() для получения информации обо всех файлах *.jpg, расположенных в каталоге С:WindowsWebWallpaper.

    На заметку! Если вы не работаете на машине с Windows, тогда модифицируйте код, чтобы читать файлы в каком-нибудь каталоге на вашей машине  Не забудьте использовать Path.VolumeSeparatorChar и Path.DirectorySeparatorChar, сделав код межплатформенным.

    Метод GetFiles() возвращает массив объектов FileInfo, каждый из которых открывает доступ к детальной информации о конкретном файле (тип FileInfo будет подробно описан далее в главе). Создайте в классе Program следующий статический метод:

    static void DisplayImageFiles()

    {

      DirectoryInfo dir = new

        DirectoryInfo(@"C:WindowsWebWallpaper");

      // Получить все файлы с расширением *.jpg.

      FileInfo[] imageFiles =

        dir.GetFiles("*.jpg", SearchOption.AllDirectories);

      // Сколько файлов найдено?

      Console.WriteLine("Found {0} *.jpg filesn", imageFiles.Length);

      // Вывести информацию о каждом файле.

      foreach (FileInfo f in imageFiles)

      {

        Console.WriteLine("***************************");

        Console.WriteLine("File name: {0}", f.Name          // Имя файла

        Console.WriteLine("File size: {0}", f.Length);      // Размер

        Console.WriteLine("Creation: {0}", f.CreationTime); // Время создания

        Console.WriteLine("Attributes: {0}", f.Attributes); // Атрибуты

        Console.WriteLine("***************************n");

      }

    }

    Обратите внимание на указание в вызове GetFiles() варианта поиска; SearchOption.AllDirectories обеспечивает просмотр всех подкаталогов корня. В результате запуска приложения выводится список файлов, которые соответствуют поисковому шаблону.

    Создание подкаталогов с помощью типа DirectoryInfo

    Посредством метода DirectoryInfo.CreateSubdirectory() можно программно расширять структуру каталогов. Он позволяет создавать одиночный подкаталог, а также множество вложенных подкаталогов в единственном вызове. В приведенном ниже методе демонстрируется расширение структуры каталога, в котором запускается приложение (обозначаемого с помощью .), несколькими специальными подкаталогами:

    static void ModifyAppDirectory()

    {

      DirectoryInfo dir = new DirectoryInfo(".");

      // Создать MyFolder в каталоге запуска приложения.

      dir.CreateSubdirectory("MyFolder");

      // Создать MyFolder2Data в каталоге запуска приложения.

      dir.CreateSubdirectory(

        $@"MyFolder2{Path.DirectorySeparatorChar}Data");

    }

    Получать возвращаемое значение метода CreateSubdirectory() не обязательно, но важно знать, что в случае его успешного выполнения возвращается объект DirectoryInfo, представляющий вновь созданный элемент. Взгляните на следующую модификацию предыдущего метода:

    static void ModifyAppDirectory()

    {

      DirectoryInfo dir = new DirectoryInfo(".");

      // Создать MyFolder в начальном каталоге.

      dir.CreateSubdirectory("MyFolder");

      // Получить возвращенный объект DirectoryInfo.

      DirectoryInfo myDataFolder = dir.CreateSubdirectory(

        $@"MyFolder2{Path.DirectorySeparatorChar}Data");

      // Выводит путь к ..MyFolder2Data.

      Console.WriteLine("New Folder is: {0}", myDataFolder);

    }

    Вызвав метод ModifyAppDirectory() в операторах верхнего уровня и запустив программу, в проводнике Windows можно будет увидеть новые подкаталоги.

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

    Вы видели тип DirectoryInfo в действии и теперь готовы к изучению типа Directory. По большей части статические члены типа Directory воспроизводят функциональность, которая предоставляется членами уровня экземпляра, определенными в DirectoryInfo. Тем не менее, вспомните, что члены типа Directory обычно возвращают строковые данные, а не строго типизированные объекты FileInfo/DirectoryInfo.

    Давайте взглянем на функциональность типа Directory; показанный ниже вспомогательный метод отображает имена всех логических устройств на текущем компьютере (с помощью метода Directory.GetLogicalDrives()) и применяет статический метод Directory.Delete() для удаления созданных ранее подкаталогов MyFolder и MyFolder2Data:

    static void FunWithDirectoryType()

    {

      // Вывести список всех логических устройств на текущем компьютере.

      string[] drives = Directory.GetLogicalDrives();

      Console.WriteLine("Here are your drives:");

      foreach (string s in drives)

      {

        Console.WriteLine("--> {0} ", s);

      }

      // Удалить ранее созданные подкаталоги.

      Console.WriteLine("Press Enter to delete directories");

      Console.ReadLine();

      try

      {

        Directory.Delete("MyFolder");

        // Второй параметр указывает, нужно ли удалять внутренние подкаталоги.

        Directory.Delete("MyFolder2", true);

      }

      catch (IOException e)

      {

        Console.WriteLine(e.Message);

      }

    }

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

    Пространство имен System.IO содержит класс по имени DriveInfo. Подобно Directory.GetLogicalDrives() статический метод DriveInfo.GetDrives() позволяет выяснить имена устройств на машине. Однако в отличие от Directory.GetLogicalDrives() метод DriveInfo.GetDrives() предоставляет множество дополнительных деталей (например, тип устройства, доступное свободное пространство и метка тома). Взгляните на следующие операторы верхнего уровня в  новом проекте консольного приложения DriveInfоАрр:

    using System;

    using System.IO;

    // Получить информацию обо всех устройствах.

    DriveInfo[] myDrives = DriveInfo.GetDrives();

    // Вывести сведения об устройствах.

    foreach(DriveInfo d in myDrives)

    {

      Console.WriteLine("Name: {0}", d.Name);       // имя

      Console.WriteLine("Type: {0}", d.DriveType);  // тип

      // Проверить, смонтировано ли устройство.

      if(d.IsReady)

      {

        Console.WriteLine("Free space: {0}", d.TotalFreeSpace);

                        // свободное пространство

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

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


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

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

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


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

    Новые отзывы

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