ВНИМАНИЕ! Опубликовано расписание занятий на 2017-2018 уч. год Подробнее
Toggle Bar

MS Visual Studio 2010. Классы работы с файловой системой

Платформа .NET Framework имеет мощные средства для работы с файловой системой и позволяет достаточно легко манипулировать файлами и папками, создавать, удалять и модифицировать их. Данное приложение показывает работу с некоторыми из этих классов. 

Классы работы с файловой системой находятся в пространстве имен System.IO (сборка mscorlib.dll). IO – сокращение от английского Input/Output (ввод/вывод, запись/чтение).

Пространство имен System.IO содержит классы для работы с каталогами и дисками, такие как: DriveInfo, Directory, DirectoryInfo. Классы для работы с файлами: File, FileInfo. Класс для работы с путями: Path. Помимо этого System.IO содержит основные классы для работы с потоками: Stream, FileStream, StreamReader, StreamWriter, StringReader, StringWriter, TextReader, TextWriter, BinaryReader, BinaryWriter и MemoryStream. Для облегчения жизни программистов в .NET Framework есть специальные статичные классы, такие как File и Directory, которые имеют готовые, часто используемые функции и методы манипуляций с каталогами и файлами.

На главной форме размещаем элементы управления: ListBox и 6 кнопок.

Классы работы с файловой системой

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;     //Это мы добавили
namespace FileInputOutput
{
    public partial class Form1 : Form
    {
        string winDir = System.Environment.GetEnvironmentVariable("windir"); //%windir% - каталог, в который установлена ОС Windows.
        public Form1()
        {
            InitializeComponent();
        }
        private void addListItem(string value)
        {
            this.listBox1.Items.Add(value);
        }
        private void button1_Click(object sender, EventArgs e)
        {
            /*В следующем примере кода используется класс  StreamReaderдля чтения файла    System.ini.   Содержимое файла добавляется в элемент управления  ListBox .
Блок try... catch используется для обработки исключительной ситуации         - предупреждения программы, если он пуст. Существует множество способов,
чтобы определить, когда будет достигнут конец файла;  в этом примере используется метод Peek */
            listBox1.Items.Clear();
            StreamReader reader = new StreamReader(winDir + "\\system.ini");
            try
            {
                do
                {
                    addListItem(reader.ReadLine());
                }
                while (reader.Peek() != -1);
            }
            catch
            {
                addListItem("File is empty");
            }
            finally
            {
                reader.Close();
            }
        }
        private void button2_Click(object sender, EventArgs e)
        {
            /*Этот пример кода использует класс StreamWriter
для создания и записи в файл. Если имеется
существующий файл, можно открыть его таким же образом.*/
            StreamWriter writer = new StreamWriter("d:\\KBTest.txt");
            writer.WriteLine("Файл создан используя класс StreamWriter.");
            writer.Close();
            listBox1.Items.Clear();
            addListItem("Файл записан в D:\\KBTest.txt");
        }
        private void button3_Click(object sender, EventArgs e)
        {
            /*Этот пример кода использует объект FileInfo для доступа к свойствам файлов. В этом примере  используется Notepad.exe. Свойства отображаются
в элементе управления ListBox . */
            listBox1.Items.Clear();
            FileInfo FileProps = new FileInfo(winDir + "\\notepad.exe");
            addListItem("File Name = " + FileProps.FullName);
            addListItem("Дата создания = " + FileProps.CreationTime);
            addListItem("Последнее время доступа = " + FileProps.LastAccessTime);
            addListItem("Последнее время записи = " + FileProps.LastWriteTime);
            addListItem("Размер = " + FileProps.Length);
            FileProps = null;
        }
        private void button4_Click(object sender, EventArgs e)
        {
            /*Этот пример кода использует классы каталог и диск
  для логических дисков в системе. В этом образце
  результаты отображаются в элементе управления ListBox  */
          
            listBox1.Items.Clear();
            string[] drives = Directory.GetLogicalDrives();
            foreach (string drive in drives)
            {
                addListItem(drive);
            }
        }
        private void button5_Click(object sender, EventArgs e)
        {
            /*Этот пример кода использует метод GetDirectories
            класса Directory для получения списка папок. */
            listBox1.Items.Clear();
            string[] dirs = Directory.GetDirectories(winDir);
            foreach (string dir in dirs)
            {
                addListItem(dir);
            }
        }
        private void button6_Click(object sender, EventArgs e)
        {
            /*Этот пример кода использует метод GetFiles
класса Directory для получения списка файлов */
            listBox1.Items.Clear();
            string[] files = Directory.GetFiles(winDir);
            foreach (string i in files)
            {
                addListItem(i);
            }
        }
    }
}

Добавить комментарий
  • Комментарии не найдены
 
Our website is protected by DMC Firewall!