Всім доброго часу доби. На зв'язку Олексій Гулинін. У минулій статті ви дізналися трохи про те, що таке модульне тестування в Visual Studio. У даній статті я б хотів розповісти про роботу з файлами на C #. Всю роботу з файлами можна розділити на 2 групи: 1) це робота з файлами, як з елементами файлової системи, наприклад, знайти файл, отримати список файлів в директорії, дізнатися дату зміни файлу, різні його атрибути, розширення, скопіювати або видалити файл, Створити новий. 2) це робота з вмістом файла: прочитати файл або записати в нього що-небудь.
Для виконання всіх цих операцій існує кілька класів, розташованих в просторі імен "System.IO".
Існує 2 класу File і FileInfo, які призначені для роботи з файлом, як до частини файлової системи. Тут також є кілька методів, які дозволяють працювати з вмістом файла цілком. У простих випадках (коли розміри файлу невеликі, скажімо до 1 МБ) файл можна повністю прочитати і зберегти в пам'ять.
Деякі методи по роботі з файлами:
- ReadAllText (). Найпростіша операція - це прочитати файл цілком. Даний метод є статичним. Тут в якості параметра можна вказати повний шлях до файлу. Коли вказуємо шлях до файлу, не забуваємо екранувати символ "".
- ReadAllLines (). Цей статичний метод повертає масив рядків, тобто читає файл через підрядник.
- WriteAllText (). Тут в якості параметра передаємо рядок, і цей рядок цілком додається в файл з перезаписом вмісту файлу.
- AppendAllText (). Тут вміст додається поверх існуючого файлу, без його перезапису.
Нижче наведено приклад на ці методи. Для початку підготуємо тестовий файл, який заповнимо назвами міст (Москва, Пітер, Казань, Уфа, Стерлітамак). Ім'я кожного міста знаходиться на новому рядку. Файл назвемо "cities.txt" і розташуємо його в корені якого-небудь диска (в моєму випадку - це диск "E"):
Те, що можна зробити за допомогою класу "File", можна зробити і за допомогою класу "FileInfo", і навпаки. Чому ж їх два? Методи класу "File" - статичні, а методи класу "FileInfo" є методами об'єкта. При роботі з методами класу "File" першим параметром завжди вказується шлях до файлу. У разі "FileInfo" - це ім'я вказується один раз в конструкторі при створенні об'єкта. Якщо потрібно виконати разову операцію, то краще використовувати клас "File". У разі роботи з багатьма файлами краще використовувати "FileInfo".
Реалізуємо наступний алгоритм: необхідно вивести всі файли, дати зміни яких старше введеної користувачем дати. Будемо розглядати папку "C: \ Windows \ System32". У ній багато файлів. Тут нам потрібно отримати всі файли цієї папки. Забігаючи вперед скажу, що це можна зробити за допомогою методу "GetFiles ()" класу "DirectoryInfo".
Протестуйте роботу даного скрипта.
Напишемо ще кілька прикладів на роботу з файлами:
В якості домашнього завдання: переробіть останній приклад тільки з використанням класу "FileInfo".
У даній статті ви дізналися, як працювати з файлами в C #.