Отслеживание изменений в файловой системе

При разработке программ, активно использующих информацию о файловой системе, часто возникает необходимость получать и отслеживать изменения, происходящие с файлами и каталогами. Наиболее ярким примером такого слежения являются всякого рода клиенты для облачных хранилищ типа Яндекс.Диск, Dropbox и т.д. Такие клиенты следят за изменениями в конкретной папке на диске и при малейшем изменении инициируют процесс синхронизации с облаком. Сегодня мы рассмотрим то, как организовать отслеживание изменений в файловой системе с использованием механизмов предоставляемых в .NET C#

Читать далее

Класс, реализующий IFormatProvider для вывода размера файла

При работе с файловой системой, все размеры файлов в C# возвращаются в байтах. С одной стороны — это полностью оправданный и правильный подход, а, с другой стороны — пользователю не всегда удобно видеть перед собой огромные числа, обозначающие, например, объем свободного места на диске. Для предоставления информации о размере файла или объеме диска в удобном для пользователя виде (в Кб, Мб, Тб и т.д.) существует несколько подходов, например, можно написать свой метод перевода величин. Мы же сегодня рассмотрим класс, который реализует интерфейс IFormatProvider в C# и может использоваться при форматировании строк, содержащих размер файла.

Читать далее

Работа с файловой системой в C#. Работа с путями (класс Path)

Путь — это строка, представляющая расположение файла или каталога. При этом, путь не обязательно указывает на физическое расположение чего-либо на диске. Например, путь может быть сопоставлен с расположением в памяти или на другом устройстве. Точный формат пути определяется текущей операционной системой. Так, например, в Windows системах путь может начинаться с буквы диска или тома, а в других операционных системах этот элемент может отсутствовать. В C# работа с путями осуществляется с использованием класса Path из пространства имен System.IO.

Читать далее

Работа с файловой системой в C#. Работа с файлами (классы File и FileInfo)

Аналогично тому, как организована работа с каталогами в C#, для работы с файлами в пространстве имен System.IO предусмотрено два класса для работы с файлами — File и FileInfo. Рассмотрим как можно использовать эти классы при работе с файловой системой в C#. Однако, прежде, чем мы приступим к рассмотрению функциональности новых классов, необходимо рассмотреть вопрос о том, как получить список файлов в определенном каталоге.

Читать далее

Работа с файловой системой в C#. Работа с каталогами (классы Directory и DirectoryInfo)

В предыдущей части мы рассмотрели работу с дисками. Сегодня углубимся в работу с файловой системой в C# и рассмотрим вопросы по работе с каталогами. Для работы с каталогами в пространстве имен System.IO можно использовать сразу два класса: Directory и DirectoryInfo. Во многом эти классы схожи по функциональности и оба класса являются статическими, однако, следуя рекомендациям Microsoft, класс DirectoryInfo следует использовать в том случае, если в приложении подразумевается, что объект для работы с директориями будет использоваться многократно. В отличие от DirectoryInfo, класс Directory выполняют проверку безопасности всех методов, что, в итоге, может сказаться на производительности приложения.

Читать далее

Работа с файловой системой в C#. Работа с дисками (класс DriveInfo)

Так или иначе, но большинство задач при написании приложений связано с работой с файловой системой — дисками, файлами, каталогами и т.д.  Так, например, нам может потребоваться информация о файлах, расположенных в определенном каталоге, или доступное свободное место на жестком диске и т.д., не говоря уже о создании, удалении или перемещении файлов, генерируемых нашим приложением. C# предоставляет нам достаточно широкие возможности по работе с файловой системой ОС, большинство из которых сосредоточены в пространстве имен System.IO.

Читать далее