Файловая система

Класс DriveInfo

Пространство имен: System.IO

Сборка: mscorlib (в mscorlib.dll)

Объявление класса: public sealed class DriveInfo : ISerializable

Класс DriveInfo (Информация о Диске) предоставляет доступ к сведениям на диске.

Этот класс моделирует диск и предоставляет методы и свойства для запроса сведений о диске. DriveInfo позволяет определить, какие диски доступны и какого они типа. Также можно запрашивать сведения для определения объема диска и объема свободного места на диске.

Следующий пример кода демонстрирует применение класса DriveInfo для отображения информации обо всех дисках в текущей системе.

using System;
using System.IO;

namespace FileSystem
{
    class Program
    {
        static void Main(string[] args)
        {
            //Метод GetDrives() возвращает массив типа DriveInfo, 
            //представляющий логические диски на компьютере.
            DriveInfo[] allDrives = DriveInfo.GetDrives();

            foreach (DriveInfo d in allDrives)
            {
                Console.WriteLine("Диск {0}", d.Name);
                Console.WriteLine("  Тип диска: {0}", d.DriveType);
                if (d.IsReady == true)
                {
                    Console.WriteLine("  Метка тома: {0}", d.VolumeLabel);
                    Console.WriteLine("  Файловая система: {0}", d.DriveFormat);
                    Console.WriteLine(
                        "  Свободное место для текущего пользователя:{0, 15} байт",
                        d.AvailableFreeSpace);

                    Console.WriteLine(
                        "  Общий объем свободного места:          {0, 15} байт",
                        d.TotalFreeSpace);

                    Console.WriteLine(
                        "  Общий объем диска:            {0, 15} байт ",
                        d.TotalSize);
                }
            }
        }
    }
}

Более подробные сведения о классе DriveInfo можно получить на сайте DriveInfo - класс

Информацию о других объектах пространства имен System.IO можно посмотреть на сайте msdn.microsoft.com по следующей ссылке пространство имен System.IO.

Класс Directory

Пространство имен: System.IO

Сборка: mscorlib (в mscorlib.dll)

Объявление класса: public static class Directory

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

Класс Directory позволяет выполнять такие стандартные операции, как создание, копирование, перемещение, переименование и удаление папок. Класс Directory также позволяет получать и задавать сведения о типе DateTime (Дата и Время), относящиеся к созданию, доступу и записи каталога.

В приведенном примере кода определяется, существует ли определенный каталог, если каталог существует, он удаляется, в противном случае — создается. Затем каталог перемещается, в нем создается файл и производится подсчет файлов в каталоге.

using System;
using System.IO;

namespace FileSystem
{
    class Program
    {
        static void Main(string[] args)
        {
            // Задайте пути к каталогам, с которыми вы будете экспериментировать.
            string path = @"f:\MyDir";
            string target = @"f:\TestDir";

            try
            {
                // Определить, существует ли указанный каталог.
                if (!Directory.Exists(path))
                {
                    // Создать каталог, если он не существует.
                    Directory.CreateDirectory(path);
                }

                if (Directory.Exists(target))
                {
                    // Удалить каталог, в который будет перемещен исходный каталог.
                    Directory.Delete(target, true);
                }

                // Переместить каталог, заданный в переменной path, 
                // в каталог, заданный в переменной target.
                Directory.Move(path, target);

                // Создать файл в каталоге.
                File.CreateText(target + @"\myfile.txt");

                // Посчитать число файлов в каталоге, заданном переменной target.
                Console.WriteLine("Количество файлов в {0} равно {1}",
                    target, Directory.GetFiles(target).Length);
            }
            catch (Exception e)
            {
                Console.WriteLine("Произошла ошибка: {0}", e.ToString());
            }
            finally { }
        }
    }
}

Более подробные сведения о классе Directory можно получить на сайте Directory - класс

Информацию о других объектах пространства имен System.IO можно посмотреть на сайте msdn.microsoft.com по следующей ссылке пространство имен System.IO.

Класс File

Пространство имен: System.IO

Сборка: mscorlib (в mscorlib.dll)

Объявление класса: public static class File

Класс File (Файл) предоставляет статические методы для создания, копирования, удаления, перемещения и открытия файлов, а также помогает при создании объектов FileStream (Файловый Поток).

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

В следующем примере показаны некоторые из основных элементов класса File.

using System;
using System.IO;

namespace FileSystem
{
    class Program
    {
        static void Main(string[] args)
        {
            // Замените указанный здесь путь "f:\temp\"
            // на существующий путь на вашем компьютере.
            string path = @"f:\temp\MyTest.txt";
            if (!File.Exists(path))
            {
                // Создайте файл для записи в него текста.
                using (StreamWriter sw = File.CreateText(path))
                {
                    sw.WriteLine("Так");
                    sw.WriteLine("осуществляется");
                    sw.WriteLine("запись в файл.");
                }
            }

            // Открыть файл для чтения.
            using (StreamReader sr = File.OpenText(path))
            {
                string s = "";
                while ((s = sr.ReadLine()) != null)
                {
                    Console.WriteLine(s);
                }
            }

            try
            {
                string path2 = path + "temp";
                // Удалить такой файл, если он существует.
                File.Delete(path2);

                // Скопировать файл.
                File.Copy(path, path2);
                Console.WriteLine("{0} был скопирован в {1}.", path, path2);

                // Delete the newly created file.
                File.Delete(path2);
                Console.WriteLine("{0} был успешно удален.", path2);
            }
            catch (Exception e)
            {
                Console.WriteLine("Произошла ошибка: {0}", e.ToString());
            }
        }
    }
}

Более подробные сведения о классе File можно получить на сайте File - класс

Информацию о других объектах пространства имен System.IO можно посмотреть на сайте msdn.microsoft.com по следующей ссылке пространство имен System.IO.