ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 13.08.2024

Просмотров: 1110

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Основы c#. Урок 1. Что такое c#?

Основы c#. Урок 2. Что такое net Runtime?

Основы c#. Урок 3. Первая программа на c#

Основы c#. Урок 4. Переменные языка c#

Основы c#. Урок 5. Логические операторы

Основы c#. Урок 6. Массивы в c#

Основы c#. Урок 7. Операторы if и switch

Основы c#. Урок 8. Циклы for и foreach

Основы c#. Урок 9. Цикл while

Основы c#. Урок 10. Классы в c#

Основы c#. Урок 11. Конструкторы классов

Основы c#. Урок 12. Наследование

Основы c#. Урок 13. Запись в экземпляр базового класса экземпляра производного

Основы c#. Урок 14. Вложенные классы

Основы c#. Урок 15. Перегрузка бинарных операторов

Основы c#. Урок 16. Перегрузка унарных операторов

Основы c#. Урок 17. Область видимости

Основы c#. Урок 18. Виртуальные функции

Основы c#. Урок 19. Абстрактные классы

Основы c#. Урок 20. Запрещение наследования или модификатор sealed

Основы c#. Урок 21. Статические переменные

Основы c#. Урок 22. Статические методы класса

Основы c#. Урок 23. Статические конструкторы

Основы c#. Урок 24. Закрытые конструкторы или классы без экземпляров

Основы c#. Урок 25. Передача параметров переменой длины

Основы c#. Урок 26. Строки (класс System.String)

Основы c#. Урок 27. Строки (класс StringBuilder)

Основы c#. Урок 28. Передача параметров по ссылке и по значению (ref и out)

Основы c#. Урок 29. Пример передачи по ссылке

Основы c#. Урок 30. Перегрузка

Основы c#. Урок 31. Функции класса System.Array

Основы c#. Урок 33. События

Основы c#. Урок 35. Введение в атрибуты

Основы c#. Урок 36. Пример пользовательского атрибута.

Основы c#. Урок 37. Параметры командной строки

Основы c#. Урок 38. Метод Main в отдельном классе

Основы c#. Урок 39. Форматированный вывод

Основы c#. Урок 40. Класс System.Object

Основы c#. Урок 41. Методы класса System.Object

Основы c#. Урок 42. Переопределяем методы класса System.Object

Основы c#. Урок 43. Константы

Основы c#. Урок 44. Модификаторы доступа

Основы c#. Урок 45. Ссылка на текущий экземпляр класса (this)

Основы c#. Урок 47. Работаем со специальными папками

Основы c#. Урок 48. Получаем список всех дисков

Основы c#. Урок 49. Ввод/вывод в c# (System.Io)

Основы c#. Урок 50. Классы для работы с папками и файлами

Основы c#. Урок 51. Класс Directory

Основы c# Урок 52. Класс File

Основы c# Урок 53. Класс FileSystemInfo

Основы c# Урок 54. Класс DirectoryInfo

Основы c# Урок 55. Перечисление FileAttributes

Основы c# Урок 56. Класс FileInfo

Основы c# Урок 57. Пример: получение имен всех подпапок

Основы c#. Урок 47. Работаем со специальными папками

Класс Environment, рассмотреннуй на прошлом уроке, позволяет выяснять и местоположение различных специальных папок - SendTo, StartMenu, Program Files и др. Это может оказаться очень удобным для, например, добавлении ярлыка на вашу программу в папку Автозагрузки или на Рабочий Стол.

Специальные папки образуют перечисление Environment.SpecialFolder. Вот его некоторые члены:

Специальная папка

Описание

Cookies

Папка с cookie

DesktopDirectory

Рабочий стол

Favorites

Избранное

History

История (Internet Explorer)

Personal

Папка "Мои документы"

ProgramFiles

Папка "Program Files"

Recent

Папка со списоком последних открываемых документов

SendTo

Папка SendTo

StartMenu

Главное меню

Startup

Папка автозагрузки

System

Системная папка Windows

Обратите внимание, что некоторые из этих папок общие для всех пользователей, а некоторые персональны для каждого пользователя.

Вот пример работы со специальными папками:

//Получаем папку SendTo.

Environment.SpecialFolder p=Environment.SpecialFolder.SendTo;

//Получаем путь к папке SendTo.

string s=Environment.GetFolderPath(p);

Console.WriteLine("Папка SendTo: {0}.", s);

//Получаем папку Startup.

p=Environment.SpecialFolder.Startup;

//Получаем путь к папке Startup.

s=Environment.GetFolderPath(p);

Console.WriteLine("Папка Startup: {0}.", s);

Тут мы сначала записываем в переменную типа Environment.SpecialFolder нужную папку, затем извлекаем путь к нужной папке через метод GetFolderPath класса Environment.

Основы c#. Урок 48. Получаем список всех дисков

Класс Environment позволяет получить и имена всех логических дисков компьютера. Делается это через его статический метод GetLogicalDrives(). Вот пример:

string[] drives=Environment.GetLogicalDrives();

foreach(string s in drives)

{

//Выводим имена всех дисков.


Console.WriteLine(s);

}

А вот результат выполения программы:

Метод GetLogicalDrives() возвращает строковый массив с именами всех дисков.

Основы c#. Урок 49. Ввод/вывод в c# (System.Io)

Для операций ввода-вывода служит пространство имен System.IO.

Вот краткий обзор наиболее важных классов и перечислений из этого пространства имен:

  • BinaryReader - позволяет читать из файла данные различных типов (целые, вещественные, логические и т. п.)

  • BinaryWriter - позволяет записывать в файл данные различных типов (целые, вещественные, логические и т. п.)

  • Directory - класс со статическими методами для работы с папками

  • DirectoryInfo - класс для работы с некоторой папкой

  • File - класс со статическими методами для работы с файлом

  • FileInfo - класс для работы с некоторым файлом

  • Path - класс для работы с файловыми путями

  • Перечисление FileAttributes - атрибуты файла

  • Перечисление FileMode - возможные способы открытия файла

  • Перечисление FileAccess содержит константы, показывающие, открыт ли файл для чтения, записи и др.

  • FileSystemWatcher - класс для отслеживания изменений в файловой системе

  • Перечисление NotifyFilters - параметры, по которым происходит отслеживание изменений в файловой системе

  • Перечисление WatcherChangeTypes - какие изменения отслеживаются в файловой системе


Основы c#. Урок 50. Классы для работы с папками и файлами

Для работы с файлами и папками в пространстве имен System.IO существуют следующие классы:

Directory- содержит ряд статических методов для выполнения различных операций с папками (создание, удаление, проверка существования, получение текущей папки и т. п.).

DirectoryInfo- аналогичен классу Directory, только его методы не статические - для использования этого класса надо создать его экземпляр (параметром для конструктора служит имя папки).

File- содержит ряд статических методов для выполнения различных операций с файлами (создание, удаление, копирование и т. п.).

FileInfo- аналогичен классу File, только его методы не статические - для использования этого класса надо создать его экземпляр (параметром для конструктора служит имя файла).

Классы Directory и File яляются непосредственными потомками класса Object, а классы DirectoryInfo и FileInfo - потомками абстрактного класса FileSystemInfo.

Основы c#. Урок 51. Класс Directory

Класс Directory предназначен для работы с папками. Этот класс содержит статические методы для работы с папками (в отличие от класса DirectoryInfo, который содержит аналогичные методы, применяемые для экзампляра класса).

Вот основные методы класса Directory (все они статические):

  • CreateDirectory - создает папку с указанным именем.

  • Exists - проверяет существование папки с указанным именем.

  • Delete - удаляет папку с указанным именем.

  • Move - перемещает или переименовывает папку с указанным именем.

А вот пример их употребления:

usingSystem;

//Подключаем необходимое пространство имен.

usingSystem.IO;

namespaceconstest

{

class Class1

{

...

static void Main(string[] args)

{

//Создаем папку.

Directory.CreateDirectory("C:\\temp");

//Проверка существования папки.

if(Directory.Exists("C:\\temp1"))

{

Console.WriteLine("Папка \"temp1\" существует");

}

else

{

Console.WriteLine("Папка \"temp1\" не существует");

}

if(Directory.Exists("C:\\temp"))

{

Console.WriteLine("Папка \"temp\" существует");

}

else

{

Console.WriteLine("Папка \"temp\" не существует");

}

//Перемещение папки.


Directory.Move( "C:\\temp", "C:\\temp2");

//Удаление папки.

Directory.Delete( "C:\\temp2");

}

}

}

Обратите внимание, что метод Move можно использовать не только для перемещения, но и для переименования папки (что мы, фактически, в нашем примере и делаем). Для этого папка, задаваемая первым параметром (т. е. та, которую перемещаем) должна находиться на том же уровне, что и папка, задаваемая вторым параметром (т. е. куда перемещаем).

Основы c# Урок 52. Класс File

Класс File предназначен для работа с файлами. Он содержит статические методы, котроые позволяют создавать, удалять, переименовывать и делать другие действия с файлами. Для этого класса существует парный класс FileInfo, содержащий аналогичные методы экземпляра класса.

Вот основные методы класса File (все они, разумеется, статические):

  • Create - создание файла.

  • Exists - проверка существования файла.

  • Delete - удалениие файла.

  • Move - переименование и перемещение файла.

  • Copy - копирование файла.

А вот пример, демонстрирующий применение этих методов:

usingSystem;

// Подключаем необходимое пространство имен.

usingSystem.IO;

namespacecontest

{

class Test

{

public static void Main()

{

// Создаем файл.

File.Create("C:\\0.txt");

// Проверка существования файла.

if(File.Exists("C:\\1.txt"))

{

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

File.Delete("C:\\1.txt");

}

// Переименование файла a.txt в b.txt.

File.Move("C:\\a.txt", "C:\\b.txt");

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

File.Move("C:\\c.txt", "D:\\c.txt");

// Копирование файла.

File.Copy("D:\\z.txt", "D:\\x.txt");

}

}

}

Обратите внимание, что и для перемещения, и для переименования файла мы используем один и тот же статичесикй метод Move (так как по сути это одна и та же операция).


Основы c# Урок 53. Класс FileSystemInfo

Класс FileSystemInfo является предком для классов DirectoryInfo и FileInfo. Именно поэтому мы и рассмотрим этот класс прежде рассматрения классов DirectoryInfo и FileInfo.

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

Вот наиболее важные методы свойства и методы этого класса (все эти свойства и методы применимы как к файлам, так и к папкам):

  • Delete - метод для удаления.

  • Refresh - метод для обновления информации о файле или папке (вызывается, например, перед получением атрибутов).

  • CreationTime - читает или задает время создания.

  • LastAccessTime - читает или задает время последнего доступа.

  • LastWriteTime - читает или задает время последней записи.

  • Attributes - читает или задает атрибуты (скрытый, сжатый, системный, временный, только для чтения и др.). Один из атрибутов (а именно Directory) позволяет выяснить, не является ли объект папкой.

  • FullName - читает полное имя (диск, папки, подпапки и т. д.).

  • Name - имя файла или папки.

  • Extension - расширение.

  • Exists - существование файла или папки.

Примеры использования этих методов и свойств иы рассмотрим на следующих уроках для потомков класса FileSystemInfo - т. е. для классов DirectoryInfo и FileInfo.

Основы c# Урок 54. Класс DirectoryInfo

Класс DirectoryInfo предназначен для работы с папками. Он позволяет делать стандартные операции - перемещение, удаление, создание папок и подпапок и др.. Кроме того, методы этого класса позволяют получить все подкаталоги и файлы указанной папки. В отличие от класса Directory, методы класса DirectoryInfo - это методы экземпляра (т. е. они не статические).

Вот пример использования этого класса:

// Создание объекта.

DirectoryInfo di = new DirectoryInfo("c:\\tmp\\tmp2");

// Создаем папку.

di.Create();

// Вывод информации о папке.

String s = "";

s += "Full nane: " + di.FullName + "\n";

s += "Root: " + di.Root + "\n";

s += "Name: " + di.Name;

MessageBox.Show(s);

// Перемещение папки.

di.MoveTo("c:\\tmp\\tmp3");

// Создание подпапок.

di.CreateSubdirectory("subdir1");

di.CreateSubdirectory("subdir2");