Сделаем это быстро



Блог переехал на doitq.ru



Thursday, April 20, 2006

Сахар NTFS

Какая у вас файловая система (ФС)? Если вы не знаете, то щелкните правой кнопкой на значке диска, выберите пункт Свойства, и ищите слова «Файловая система:». Что такое файловая система? Файловая система — это… м-м… Способ хранения файлов на диске? Ну что-то типа того. Можно спросить специалистов, но суть не в этом.

Если вы рядом со словами «Файловая система:» нашли магическую аббревиатуру NTFS, то этот материал для вас. NTFS, в отличие от FAT, умеет делать пару интересных штуковин. Говорят, что она также более надежная и безопасная, — охотно верю, но ничего об этом не знаю.

А мы рассмотрим то, что может быть полезным для простого сермяжного пользователя.


Ссылки

Что мы имеем в случае старенькой ФС FAT в плане ссылок на файл, находящийся где-то в другом месте? Да ничего. Ярлыки недаром называются ярлыками, так как ссылками не являются. Это файлы, читаемые проводником, который и видит в них ссылки, не более того.

В NTFS ссылки есть. Аж два вида. Первый вариант — для файлов. Вы можете создавать так называемые жесткие связи (hardlink). Фактически это значит, что у одного файла будет несколько имен (и путей — связь может быть в любой папке). По любому из этих имен можно читать, изменять, копировать один и тот же файл. Файл удаляется только тогда, когда не осталось ни одной ссылки на него. Забудьте про «истинное» расположение файла, его нет. Все ссылки на файл в равной мере истинны.

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

Второй вид ссылок — это junction (точка монтирования? — не знаю как перевести). Работает только для папок, в лице этой ссылки вы получаете точное зеркало выбранной папки, с которым можно полноценно работать, но здесь исходная папка и ссылка на нее — разные вещи. Ссылку можно безболезненно изничтожить, а удалив исходную папку, вы ее действительно удалите.

Когда вы открываете или сохраняете файл, какую папку предлагают вам диалоги «Окрыть» и «Сохранить как»? «Мои документы» либо текущий рабочий каталог. Все, что угодно, кроме нужного, даже если нужно всегда одно и то же. Моя идея состоит в том, чтобы напихать в «Мои документы» junction’ов на все мои рабочие папки (их не очень-то много). В этом случае они оказываются под рукой, независимо от того, использует ли приложение стандартные диалоги системы или тщится доказать свою иллюзорную уникальность.

К сожалению, вся эта радость работает только в пределах одного тома NTFS. Собрать кучу сетевых папок в одно место не выйдет.

Теперь техника ссылания (ссылательства, ссылкования?). Графического интерфейса для такого баловства в системе нет. Можно, конечно, воспользоваться командой fsutil: hardlink, но больно уж это неудобно. Рекомендую Link Shell Extension. Это расширение оболочки, которое встраивает дополнительные пункты в контекстное меню проводника, и позволяет создавать ссылки простым перетаскиванием или копированием файлов.

О потоках позже. Быть продолженным.

Комментарии (5) »

URI для TrackBack этой записи:
http://doitq.blogsome.com/2006/04/20/1-15/trackback/

  1. Ух ты, вот спасибо :)
    Самому-то лень разбираться в этих тонкостях, а вот выжимка полезностей - это круто

    Comment by snaky — Monday, April 24, 2006 @ 09:58

  2. junction (точка монтирования? — не знаю как перевести) - в терминах Linux’a это называется “мягкая ссылка (soft link)”.

    Comment by fatroom — Monday, April 24, 2006 @ 13:19

  3. насчёт ссылок - совсем неплохо:) не знал про такую пену, ждал Висту с ее виртуальными папками, чтобы относить одни и те же файлы к разным категориям

    Comment by antisocialis — Monday, April 24, 2006 @ 18:43

  4. в far есть встроенная фича - alt-f6
    очень удобно - давно пользуюсь

    Comment by sk — Monday, April 24, 2006 @ 19:43

  5. 2 antisocialis:
    Ага, ага. То же самое.
    2 sk:
    Да, я в давние времена, еще сидючи на FAT, от far’а как раз и узнал о ссылках в NTFS.

    Comment by doitq — Tuesday, April 25, 2006 @ 08:59

RSS feed комментариев к этому посту.

Оставить комментарий

Текст на строки и абзацы разбиватся автоматически, e-mail адрес не отображается,
из арсенала HTML разрешены:
<a href="" title=""> <abbr title=""> <acronym title=""> <b>
<blockquote cite=""> <code> <em> <i> <strike> <strong>