Как сделать файл системным

Как сделать файл системным

Хочу узнать, как можно создать собственную системную папку, которая бы ссылалась на произвольную папку в компьютере?

Простейший способ — создать ярлык (или символическую ссылку или связь (junction)) на нужную папку (или саму папку) в папке "Сетевых дисков" — %AppData%MicrosoftWindowsNetwork Shortcuts
Ещё один, не менее простой способ, воспользоваться утилитой Сергея Ткаченко

Во втором случае можно будет в реестре посмотреть, как и что делается (это если лень статью читать).

Существует великое множество файловых систем. Это и файловые системы для носителей информации (FAT*, NTFS, ext* и т.д.), и сетевые файловые системы (NFS, CIFS и т.д.), и виртуальные файловые системы, и великое множество других. А появлялась ли у тебя, %habrauser%, потребность в своей, еще несуществующей файловой системе? О том, как ее сделать для ОС Windows на managed-коде (.net), и пойдет речь.

В общем случае, для создания своей файловой системы (далее ФС), необходимо написать драйвер этой ФС и зарегистрировать его в ОС. Т.к. драйвер взаимодействует с ядром ОС, то его создание на managed-коде является делом нетривиальным, а производительность такого драйвера будет на невысоком уровне. В связи с этим, целесообразнее иметь драйвер ФС, написанный на native-коде и некий промежуточный слой между этим драйвером и managed-кодом. Такой драйвер существует в проекте Dokan, равно как и набор классов DokanNet для взаимодействия с этим драйвером в managed-коде. Оба проекта распространяются под лицензией GPLv3.

Попробуем разобраться, как это работает

Dokan — это драйвер, работающий на уровне ядра Windows, с которым могут взаимодействовать любые приложения из userspace-а. Драйвер существует как для 32-ух разрядный систем, так и для 64-ех разрядных. Драйвер не несет в себе реализацию какой-либо ФС, а лишь выступает в роли прокси, пропуская через себя все операции ввода-вывода (IO) из ядра ОС в userspace. Реализация функционала ФС лежит на наших плечах, мы создаем базовые функции ФС, такие как открытие/закрытие файла, чтение из файла, запись в файл и т.д., которые будут вызываться драйвером Dokan при возникновении в системе соответствующих событий. В момент регистрации нашей ФС в драйвере Dokan, мы указываем некоторые параметры работы нашей ФС (кол-во потоков-обработчиков операций ввода/вывода, точка монтирования нашей ФС (Dokan поддерживает монтирование в качестве съемного или сетевого диска и только в корень ФС), автоматическое размонтирование нашей ФС, в случае ошибок в работе, и некоторые другие параметры). После этого в ОС появляется новый диск в корне ФС, с которым любые приложения и сама ОС взаимодействует, как и с обычным диском. Какие операции разрешено производить в данной ФС, зависит только от разработчика этой ФС, то есть от нас.

Читайте также:  Где находится анимация в ворде

DokanNet – это обертка над драйвером Dokan. Позволяет разрабатывать свою ФС на managed-коде. DokanNet описывает интерфейс DokanOperations, который необходимо реализовать для регистрации нашей ФС в драйвере Dokan. Автор DokanNet вместе с исходниками самого проекта положил 2 примера работы с данной оберткой:

  • DokanNetMirror — ФС-зеркало уже существующего каталога
  • RegistoryFS — ФС, представляющая структуру системного реестра Windows в директории и файлы

Коды примеров легко читаемы и позволяют ознакомиться с возможностями, предоставляемые драйвером Dokan.

Реализация интерфейса DokanOperations сводится к реализации следующих функций:

  • CreateFile — создание файлов/директорий
  • OpenDirectory — открытие директории
  • CreateDirectory — создание директории
  • Cleanup — удаление файла/пустой директории
  • CloseFile — закрытие файлового дескриптора
  • ReadFile — чтение куска файла указанной длины с указанным смещением
  • WriteFile — запись данных в файл с указанным смещением
  • FlushFileBuffers — очистка буферов (кэша) файла
  • GetFileInformation — получение информации о размере, атрибутах, времени создания/последнего доступа/модификации файла/директории
  • FindFiles — получение списка файлов/директорий в указанной директории
  • SetFileAttributes — установка атрибутов файла/директории
  • SetFileTime — установка времени создания/последнего доступа/модификации файла/директории
  • DeleteFile — пометка файла на удаление (удаление проводится в Cleanup)
  • DeleteDirectory — пометка директории на удаление (удаление проводится в Cleanup)
  • MoveFile — перемещение/переименование файла/директории
  • SetEndOfFile — установка размера файла (используется при создании пустого файла определенной длины)
  • SetAllocationSize — автор не указал для чего необходима данная фун-ция, на практике передача управления в нее не замечена
  • LockFile — блокировка файла в single-доступе
  • UnlockFile — снятие блокировки
  • GetDiskFreeSpace — получение информации о кол-ве доступного/общего/свободного места в ФС
  • Unmount — размонтирование/отключение ФС

Как мы видим, функционал, предоставляемый драйвером Dokan и оберткой DokanNet очень богат. На базе данного проекта разработана ФС SSHFS. Каждый может разработать ФС, отвечающий своим требованиям. Я же остановился на разработке HttpFS, которая позволит монтировать в систему файлы, находящиеся на удаленных Http-серверах. Но об этом в следующей статье…

Читайте также:  Используется вызов контекстного серверного метода формы

Как снять атрибуты Системный и Скрытый через командную строку

Как снять атрибуты Системный и Скрытый через командную строку

Как сделать файл скрытым

Добрый день уважаемые читатели блога pyatilistnik.org, ранее мы рассмотрели Как включить отображение системных файлов в Windows и Как включить отображение скрытых файлов в Windows 7 а что если снять данные атрибуты через Свойства файла не возможно, тогда нам с вами поможет командная строка.

Ранее я рассказывал как открыть командную строку, открываем. Теперь переходим в нашу проблемную папку, по опыту это чаще всего флеш-карта или внешний жесткий диск. Поэтому открываем компьютер, смотрим букву диска и вводим в командную строку следующую команду вида:

Где, вместо *путь* нужно ввести путь в нужный каталог.

В моем случае вид будет вот такой: cd /D h:

Как снять атрибуты Системный и Скрытый через командную строку-01

И вводим следующую команду:

Как снять атрибуты Системный и Скрытый через командную строку-02

Она снимет атрибуты «Скрытый» и «Системный» со всех файлов и папок в данном каталоге.

Команда для снятия атрибутов, определенной папки и файлов на диске:

Команда для снятия атрибутов всех папок и файлов на диске:

Для всех папок и файлов на диске:

Атрибут S «Системный», H «Скрытый», R «Только чтение», A «Архивный»
*.* Для всех папок и файлов
— Снятие атрибута
+ Установка атрибута

/S Обработка файлов и каталогов с указанными именами в текущем каталоге и его подкаталогах
/D Обработка файлов и каталогов

Вот так просто вы узнали как снять атрибуты Системный и Скрытый через командную строку и познакомились с утилитой командной строки attrib.

Ссылка на основную публикацию
Как сделать развертку в компасе
В предыдущих уроках рассматривалось создание листового тела. Сегодня поговорим о том, как сделать развертку в компасе, в том числе как...
Как связать инстаграм и одноклассники
Когда вам необходимо разместить одну и ту же публикацию сразу в нескольких соцсетях, вашу задачу может облегчить автоматический кросспостинг публикации...
Как сделать книжечку из листов а4
Как сделать книгу из листов бумаги формата А4 без использования клея и степлера, мы расскажем и покажем в своем пошаговом...
Как сделать ссылку на таблицу в word
Часто в тексте документа необходимо отметить, где находится объект связанный с конкретным текстом. Например, «Схему подсоединения водопроводного крана смотри на...
Adblock detector