Новая утилита для TC: NTFS Links 1.2

Форум о самом популярном файловом менеджере Total Commander

Сообщение Флинт » Вс дек 05, 2004 6:32 pm

Новая утилита для Тотала: <a href='http://wincmd.ru/download.php?id=ntfslinks' target='_blank'>NTFS Links 1.0</a>

Программа позволяет создавать жёсткие и символические ссылки на NTFS-разделах из Total Commander. Программа устанавливается в меню "Запуск" или на панель инструментов и вызывается для создания ссылок на выделенные файлы/каталоги в другой панели, т.е. ведёт себя абсолютно идентично командам копирования (F5), перемещения (F6) и т.п. В отличие от уже существующих утилит и скриптов, в этой программе можно указать уровень вложенности подкаталогов, на котором будут созданы символические ссылки (см. справку).
Программа позволяет хранить настройки как в системном реестре, так и в INI-файле; поддерживает мультиязычность с помощью LNG-файлов (в архиве есть русский и английский).
Для установки программе требуется прописать параметры командной строки:
"%L" "%T\" /i=имя_файла_ini
(параметр /i необязателен). Подробное описание процесса установки см. в справке, в разделе "Установка программы".
Последний раз редактировалось Флинт Ср мар 23, 2005 1:51 pm, всего редактировалось 1 раз.
Флинт
Майор
 
Сообщений: 368
Зарегистрирован: Пн ноя 25, 2002 9:26 am
Откуда: Москва
Пункты репутации: 0

Сообщение aTeos » Пн дек 06, 2004 6:15 pm

<!--QuoteBegin--><div class='quotetop'>QUOTE</div><div class='quotemain'><!--QuoteEBegin-->Программа позволяет создавать жёсткие и символические ссылки на NTFS-разделах<!--QuoteEnd--></div><!--QuoteEEnd-->
Сорри, а зачем это нужно?
aTeos
Капитан
 
Сообщений: 215
Зарегистрирован: Сб мар 06, 2004 4:33 pm
Пункты репутации: 0

Сообщение Флинт » Пн дек 06, 2004 9:35 pm

2aTeos
Читайте справку, господа <!--emo&:)-->[img]style_emoticons/<#EMO_DIR#>/smile.gif[/img]<!--endemo--> Там всё написано - и что это такое, и что оно позволяет, и даже несколько примеров использования приведено. См. раздел "Что такое ссылки NTFS?".
Флинт
Майор
 
Сообщений: 368
Зарегистрирован: Пн ноя 25, 2002 9:26 am
Откуда: Москва
Пункты репутации: 0

Сообщение eduha » Вт дек 07, 2004 3:06 am

2Флинт
Когда делаешь ссылку на один файл, она (ссылка) появляется баз расширения... С двумя и более файлами - нормально.
<span style='color:blue'>Мэджик пипл, вуду пипл</span>
eduha
Капитан
 
Сообщений: 233
Зарегистрирован: Пн авг 11, 2003 4:39 pm
Откуда: Караганда / Казахстан
Пункты репутации: 0

Сообщение DruG » Вт дек 07, 2004 3:48 am

<!--QuoteBegin-Флинт+Dec 7 2004, 04:35--><div class='quotetop'>QUOTE(Флинт @ Dec 7 2004, 04:35)</div><div class='quotemain'><!--QuoteEBegin-->Читайте справку, господа
<!--QuoteEnd--></div><!--QuoteEEnd-->
но для этого надо же скачивать программу (на офсайте я вообще не нашёл этой программы), а можно где нить выложить справку отдельно?
DruG
Генерал-майор
 
Сообщений: 2383
Зарегистрирован: Ср авг 11, 2004 2:17 am
Откуда: Сибирского internet unlimited
Пункты репутации: 0

Сообщение Флинт » Вт дек 07, 2004 2:02 pm

2eduha
У меня не воспроизводится, всё создаётся нормально. Нужна полная информация. Напиши, плиз, какая у тебя ОС, какая версия Тотала, если не 6.03a - попробуй 6.03a. Далее, какое имя у файла, на который делаешь ссылку, и из какого каталога в какой? Что пишется в диалоге программы? (над строкой ввода, и в самой строке ввода) Какие параметры командной строки прописал при установке программы?


2DruG
На оф. сайт скоро выложу, просто внезапно много работы свалилось; хотел вчера (в понедельник) выложить - не получилось. Надо же ещё описание сделать, ссылочки присобачить...
А отдельно справку... По-моему, смысла особого нет. Какая разница, что качать - весь архив с программой или только справку? В обоих случаях файл один (RAR), в обоих случаях размер архива очень небольшой (100 кб полный архив и 40 кб только справка), в обоих случаях требуется разархивация. Но зато в первом случае, если выяснится, что программа полезная, то не придётся качать ещё один архив.

Для особо ленивых напишу тут основные моменты, авось кого заинтересую... <!--emo&:)-->[img]style_emoticons/<#EMO_DIR#>/smile.gif[/img]<!--endemo-->

Жёсткие и символические ссылки - это разные записи в файловой системе, ссылающиеся на одни и те же данные. Поэтому основным применением могут быть ситуации, где нужно дублирование файлов или папок, но нормальное копирование исключается (например, не хочется тратить место на диске, или не хочется синхронизировать разные копии...) Соответственно, примеры использования ссылок:
1. Защита DLL (да и других файлов) от удаления: делаем на защищаемый файл жёсткую ссылку. В результате если кто-то попытается удалить этот файл, то останется ссылка, которую мы сделали и по которой можно будет по-прежнему обращаться к тем же данным, что были в том файле, т.е. физически он удалён НЕ будет, все данные, хранившиеся в нём, останутся живыми и здоровыми.
2. После переноса папки в другое место можно обращаться к ней же по старому имени и местоположению - достаточно сделать на новое местоположение папки символическую ссылку. Удобно, если привык к старому местоположению, или если не хочется перенастраивать кучу программ, работавших с этой папкой.
3. Объединение нескольких разбросанных подкаталогов в одном месте: делаем символические ссылки на все эти подкаталоги, собираем их в один каталог и делаем с ними со всеми одновременно нужные действия (например, открыть/закрыть доступ по сети).
Флинт
Майор
 
Сообщений: 368
Зарегистрирован: Пн ноя 25, 2002 9:26 am
Откуда: Москва
Пункты репутации: 0

Сообщение Evgenych » Вт дек 07, 2004 8:39 pm

<!--QuoteBegin--><div class='quotetop'>QUOTE</div><div class='quotemain'><!--QuoteEBegin-->Когда делаешь ссылку на один файл, она (ссылка) появляется баз расширения... С двумя и более файлами - нормально.
<!--QuoteEnd--></div><!--QuoteEEnd-->
Та же беда.
6.03
winXP
Исходный каталог d:\zzz
приемник d:\
Имя файла 1.mp3 (пробовал и другие)

Когда выделяешь несколько файлов, то в диалоге текст:

Создать ссылки для выделенных (n шт.) в:
D:\*.*

Когда выделяешь один файл

Создать ссылку для "1" в:
d:\1

(НазваниеФайлаБезРасширения)
Последний раз редактировалось Evgenych Вт дек 07, 2004 8:42 pm, всего редактировалось 1 раз.
Evgenych
Прапор
 
Сообщений: 66
Зарегистрирован: Пт июл 11, 2003 3:38 pm
Пункты репутации: 0

Сообщение Флинт » Вт дек 07, 2004 10:23 pm

2Evgenych
Ничего не понимаю... Делаю всё то же самое - всё создаётся нормально:
Создать ссылку для "1.mp3" в:
D:\1.mp3

Тогда такой набор вопросов:
1. Надо убедиться, что параметры в точности соответствуют тем, что я написал, включая регистр, кавычки, слэши и т.п.:
"%L" "%T\"
Два параметра, оба в кавычках, оба большими буквами, после %T обязательно обратный слэш.
2. Если всё это выполнено, то такая просьба: вызвать диалог программы, переключиться обратно в Тотал (или в Проводник, всё равно), перейти во временную папку (cd %temp%). Дальше там нужно найти файл вида CMD27C.tmp, т.е. первые 3 символа - "CMD", дальше несколько произвольных символов, расширение "tmp": это и есть созданный файл списка, который передался программе в качестве параметра "%L" (если их несколько, то можно удалить их все и повторить эти действия ещё раз). Открыть его в любом текстовом редакторе и написать сюда, что там содержится. Должно быть:
D:\zzz\1.mp3
И символ перевода строки.
eduha, Evgenych: посмотрите, пожалуйста, что там написано в вашем случае.
Флинт
Майор
 
Сообщений: 368
Зарегистрирован: Пн ноя 25, 2002 9:26 am
Откуда: Москва
Пункты репутации: 0

Сообщение eduha » Ср дек 08, 2004 3:39 am

2Флинт
Ось - ХР, тотал - 6.02 beta 3. В tmp-файле путь прописывается правильно, с расширением.
По поводу имен файлов - хотел сделать f:\totalcmd\wincmd.ini -> f:\windows\wincmd.ini
Параметры ком. строки - те, что указаны в хелпе. В диалоге программы было написано "f:\windows\wincmd" (т.е. без расширения). Если добавить расширение вручную, линка создавалась без проблем.

ЗЫ. Сейчас немного побаловался - пропадают расширения у *.ini, *.exe, *.chm, *.hlp, *.htm (остальные не проверял). Не пропадают - у *.txt, *.inc, *.dll, и др.
<span style='color:blue'>Мэджик пипл, вуду пипл</span>
eduha
Капитан
 
Сообщений: 233
Зарегистрирован: Пн авг 11, 2003 4:39 pm
Откуда: Караганда / Казахстан
Пункты репутации: 0

Сообщение Batya » Ср дек 08, 2004 7:07 am

2All
<!--QuoteBegin--><div class='quotetop'>QUOTE</div><div class='quotemain'><!--QuoteEBegin-->Когда делаешь ссылку на один файл, она (ссылка) появляется баз расширения... С двумя и более файлами - нормально.<!--QuoteEnd--></div><!--QuoteEEnd-->
Влияет настройка проводника "Не показвать расширения для зарегистрированных типов файлов" ("Hide file extensions for known file types").
Batya
Ст. лейтенант
 
Сообщений: 146
Зарегистрирован: Вт апр 29, 2003 8:28 am
Откуда: Москва
Пункты репутации: 0

Сообщение Флинт » Ср дек 08, 2004 7:20 am

<!--QuoteBegin-eduha+Dec 8 2004, 06:39--><div class='quotetop'>QUOTE(eduha @ Dec 8 2004, 06:39)</div><div class='quotemain'><!--QuoteEBegin-->Влияет настройка проводника "Не показвать расширения для зарегистрированных типов файлов" ("Hide file extensions for known file types").<!--QuoteEnd--></div><!--QuoteEEnd-->
О, спасибо! Блин, чувствовал же - что-то знакомое, когда расширение не показывается... Я-то у себя первым делом после установки винды эту галочку снимаю. Буду ковыряться, какой это мне "добрый" метод расширение убивает...
Флинт
Майор
 
Сообщений: 368
Зарегистрирован: Пн ноя 25, 2002 9:26 am
Откуда: Москва
Пункты репутации: 0

Сообщение Lazy Crazy » Чт дек 09, 2004 12:08 am

У меня почему-то работает следующим макаром:
Если выделять файлы, то жёсткие ссылки на них не создаются при любой величине рекурсии - создаются копии (но весьма странные - свободное место на диске не уменьшается, скорость "копирования" нереально быстрая, _однако_ можно редактировать файлы - как оригиналы, так и копии - без изменения парных файлов). 3-х мегабайтный файл делаю 3-х байтным - свободное место на диске не прибавляется. В одноименном файле (который оставался 3-х мегабайтным) делаю аналогичную операцию - место на диске увеличивается... Если выделять папку, в которой лежат файлы и ставить рекурсию "0" (не больше, не меньше) - тогда всё идёт "по плану", появляется символическая ссылка на папку и жёсткие ссылки в ней, и изменение файла в одном месте ведёт к его изменению в другом. Если в папке создать другую папку, то, опять-таки при рекурсии "0", создаются жёсткие ссылки как на файлы в первой папке, так и во вложенной (в таблице в справке создание каких-либо файлов в поддиректории не указано).
Ещё любопытная ситуация: если в обеих панелях открыта одна и та же папка, в которой есть символическая ссылка и курсор стоит на ней (но она не выделена), то после запуска NtfsLinks и нажатия "Ok" зайти внутрь её невозможно. При создании символической ссылки на папку в ней же ситуация ещё интереснее 8-), но там всё логично.
И ещё - можно ли решить с помощью ссылок такую проблему: у меня есть папки, в которых находятся подпапки с одними и теми же названиями, но с разным содержимым. Просто поместить всё в один каталог нельзя, а искать по разным папкам иногда приходится долго. Символическая ссылка на подкаталог "ААА" из каталога "1" затирается символической ссылкой на подкаталог "ААА" из каталога "2". Создание ссылок на файлы нереально долго, да и не работает (см. выше). Хотя бы теоретически, можно ли с помощью этой утилиты собрать общий каталог?
И последнее - у меня с помощью майкрософтовского Tweak UI убраны стрелочки со ссылок. После использования NtfsLinks они появляются, хотя в настройках Tweak UI остаются выключенными и при повторном применении Tweak UI снова исчезают. Нельзя ли оставлять этот папаметр в том состояни, как он был до использования утилиты?


Windows`XPSP1, TotalCommander 6.03
Это тело всегда находит отдохновение в праздности. Кто может обременить нас почётом или позором, приобретениями или утратами?
Это сердце всегда находит удовольствие в покое. Кто может смутить нас истиной или ложью, выгодой или ущербом?
Хун Цзычен. Вкус корней.
Lazy Crazy
Мл. сержант
 
Сообщений: 20
Зарегистрирован: Вс ноя 17, 2002 9:40 pm
Пункты репутации: 0

Сообщение Флинт » Чт дек 09, 2004 7:55 am

2Lazy Crazy
Пока я всё это читал, у меня создалось впечатление, что ты не совсем разобрался с тем, что же такое жёсткие и символические ссылки. Пойду по пунктам.

0. Во-первых (хотя это относится к концу твоего поста, но важно для дальнейшего объяснения), никто не заставляет давать жёстким и символическим ссылкам в точности такие же имена, как у оригинальных файлов/каталогов. Ты ведь когда копируешь файлы в другой каталог, можешь назвать их по-другому. Точно так же и здесь. Никто не запрещает сделать, например, на файл file.txt жёсткую ссылку с именем asdf.fdsa.

1. Когда ты создаёшь жёсткие ссылки на файлы, то параметр "глубина рекурсии" не задействован. Он используется исключительно в том случае, когда выделен хотя бы один каталог.

2. Каким образом ты проверял поведение жёстких ссылок? Открыл в программе обе копии и стал менять одну из них, надеясь, что изменится и вторая? Тогда разумеется, что ничего подобного не могло произойти. Любая программа при открытии файла первым делом считывает этот файл в память. Соответственно, когда ты меняешь файл по одной из его жёстких ссылок, то по второй жёсткой ссылке сразу же становится доступным изменённый файл. Но если он перед этим был считан программой в память, то кто ж будет этот файл в памяти менять, кроме самой программы? Надо дать ей команду перечитать файл с диска, или (если такой команды нет) - закрыть и открыть её снова.

3. Когда ты делаешь символическую ссылку на папку, никаких жёстких ссылок при этом не возникает! Рассмотрим пример. Пусть у тебя на диске нет ни одной жёсткой и ни одной символической ссылки, а только нормальные файлы и каталоги (для простоты я под жёсткими ссылками понимаю здесь только те файловые записи, которые дублируются, а не одиночные). Когда ты сделаешь символическую ссылку на один из каталогов (т.е. с глубиной рекурсии 0), у тебя на диске станет ровно на одну файловую запись больше: появится эта самая ссылка, и больше ни одной ссылки, ни одного файла, ни одного каталога создано не будет! Теперь у тебя есть два каталога с с одним и тем же содержимым. Подчёркиваю: даже не с идентичным содержимым, а именно с одним и тем же! Пусть у тебя был каталог C:\123\, и ты создал на него символическую ссылку C:\abc\. Если ты создашь теперь подкаталог C:\123\sub\, то этот же самый (не такой же, а этот же!) подкаталог появится и в "подкаталоге" C:\abc\, и будет называться так же - C:\abc\sub\ (не забываем нажимать Ctrl+R в Тотале!). На диске будет присутствовать ровно одна символическая ссылка (C:\abc\), и ни одной жёсткой.

4. Ситуация, которую ты описал (создание ссылки, когда открыт один и тот же каталог в обеих панелях), действительно, интересная и мной не предусмотренная. В этом случае создаётся символическая ссылка, указывающая сама на себя. Поскольку в этом случае она не указывает ни на какой физический объект на жёстком диске, то система запрещает обращаться по этой ссылке. Если зайти по этой ссылке через Проводник, он сообщает, что "Имя этого файла не может быть разрешено системой".

5. Про решение твоей проблемы: да, можно. См. пункт 0 о разрешении создавать ссылки с разными именами. Просто называешь символические ссылки не одинаково ("AAA"), а по-разному. Например, для подкаталога "AAA" из каталога "1" делаешь ссылку с названием "AAA1", для подкаталога "AAA" из каталога "2" делаешь ссылку с названием "AAA2" и т.д.

6. Теперь про TweakUI. Во-первых, какой версией ты пользуешься? Дело в том, что я сам у себя убираю стрелочки с ярлыков этой утилитой, и до сих пор никаких проблем не замечал. Для WinXP (у меня тоже XP, только SP2) можно использовать либо TweakUI 2k (у неё интерфейс в виде обычного диалога с кучей вкладок), либо обновлённой версией TweakUI для WindowsXP (а у этой версии диалог больше похож на диалог настройки Тотала - слева панель с категориями, а справа - сами настройки для выбранной категории). Так вот, я всегда пользовался первым, т.е. который для 2000. Может, из-за разных версий проблема? Или из-за разного сервис-пака... Пока не знаю. Напиши, какой версией TweakUI пользуешься ты.
Последний раз редактировалось Флинт Чт дек 09, 2004 7:57 am, всего редактировалось 1 раз.
Флинт
Майор
 
Сообщений: 368
Зарегистрирован: Пн ноя 25, 2002 9:26 am
Откуда: Москва
Пункты репутации: 0

Сообщение Lazy Crazy » Чт дек 09, 2004 8:08 pm

Тогда и я по пунктам... 8-)

0. и 5. Если давать другие имена, то весь смысл теряется. Попробую аналогию: есть папки CD1, CD2, CD3... В каждой одинаковые подпапки - например, Архиваторы, Антивирусы, Редакторы и т.д. Но в разных папках в одних и тех же подпапках лежат разные файлы (например, в CD1\Архиваторы лежит WinRAR 3.40, а в CD2\Архиваторы - WinRAR 3.41). Мечталось, что зайдя в CDx (в котором собраны все ссылки) можно в одной папке Архиваторы найти там и WinRAR 3.40, и WinRAR 3.41. В моём случае и папок побольше, и структура их посложнее. Но это всё не важно, просто по ходу подумалось...
1. Естественно, просто заподозрив глюк, стал пробовать со всеми параметрами...
2. Ну не такой уж я чайник... 8-) Поочерёдно, конечно - правим один файл, закрываем, сохраняя, идём смотреть второй.
3. Хорошо, поясни тогда, что обозначает столбец, озаглавленный "Значение 1" в таблице из справки. Ты пишешь "Когда ты делаешь символическую ссылку на папку, никаких жёстких ссылок при этом не возникает!". Но в столбце после _синей_ SubDir2 стоит _зелёный_ text.txt - т.е. в символической ссылке на папку SubDir2 находится жёсткая ссылка на файл text.txt ???
В любом случае, ни одной жёсткой ссылки мне создать не удалось, лишь символические на папки.
6. Я пользуюсь вторым вариантом, Tweak UI 2.10.0.0
Это тело всегда находит отдохновение в праздности. Кто может обременить нас почётом или позором, приобретениями или утратами?
Это сердце всегда находит удовольствие в покое. Кто может смутить нас истиной или ложью, выгодой или ущербом?
Хун Цзычен. Вкус корней.
Lazy Crazy
Мл. сержант
 
Сообщений: 20
Зарегистрирован: Вс ноя 17, 2002 9:40 pm
Пункты репутации: 0

Сообщение Флинт » Чт дек 09, 2004 9:30 pm

<!--QuoteBegin-Lazy Crazy+Dec 9 2004, 23:08--><div class='quotetop'>QUOTE(Lazy Crazy @ Dec 9 2004, 23:08)</div><div class='quotemain'><!--QuoteEBegin-->2. Ну не такой уж я чайник... 8-) Поочерёдно, конечно - правим один файл, закрываем, сохраняя, идём смотреть второй.<!--QuoteEnd--></div><!--QuoteEEnd-->
Тогда это очень и очень странно... Хотя, кажется, я понял, в чём суть. Некоторые программы сохраняют файлы очень хитрым способом: старый удаляют, а потом создают новый файл и пишут туда нужные данные. В таком случае понятно, почему не менялось место на диске: файл размером в три байта умещается целиком в MFT-таблице и лишнего места не занимает. Попробуй этот трёхметровый файл не урезать до трёх байт, а просто немного поменять, оставив размер примерно таким же, после чего сохранить. В этом случае произойдёт одно из двух: либо свободное место на диске уменьшится на три метра, либо второй файл поменяется вместе с первым.
<!--QuoteBegin-Lazy Crazy+Dec 9 2004, 23:08--><div class='quotetop'>QUOTE(Lazy Crazy @ Dec 9 2004, 23:08)</div><div class='quotemain'><!--QuoteEBegin-->3. Хорошо, поясни тогда, что обозначает столбец, озаглавленный "Значение 1" в таблице из справки. Ты пишешь "Когда ты делаешь символическую ссылку на папку, никаких жёстких ссылок при этом не возникает!". Но в столбце после _синей_ SubDir2 стоит _зелёный_ text.txt - т.е. в символической ссылке на папку SubDir2 находится жёсткая ссылка на файл text.txt ???
В любом случае, ни одной жёсткой ссылки мне создать не удалось, лишь символические на папки.<!--QuoteEnd--></div><!--QuoteEEnd-->
В упомянутой тобой таблице внизу есть список обозначений, и там чётко сказано, что каким цветом обозначено. Вот исходные данные:

|-file.dat
|-do.cmd
\-MyDir\
   |-SubDir1\
   |-SubDir2\
   |   |-DeepDir\
   |   \-smth.dat
   \-text.txt

Если мы выделим всё, что видим в приведённом примере (т.е. два файла - file.dat и do.cmd, - и каталог MyDir\; всё остальное мы просто не видим, остальные файлы и подкаталоги находятся внутри каталога MyDir\), а в качестве глубины рекурсии укажем значение 1, то получим следующий результат:

|-<span style='color:green'>file.dat</span>
|-<span style='color:green'>do.cmd</span>
\-MyDir\
   |-<span style='color:blue'>SubDir1\</span>
   |-<span style='color:blue'>SubDir2\</span>
   \-<span style='color:green'>text.txt</span>

Цитата из справки:
"Полужирным шрифтом выделены обычные каталоги, <span style='color:green'>зелёным</span> цветом указаны жёсткие ссылки, <span style='color:blue'>синим</span> - символические ссылки."

Таким образом получаем, что у нас создаются следующие данные:
1. Жёсткая ссылка на файл file.dat
2. Жёсткая ссылка на файл do.cmd
3. КАТАЛОГ MyDir (не символическая ссылка, а каталог!!)
4. В этом каталоге (!) создана жёсткая ссылка на файл MyDir\text.txt
5. В этом же каталоге созданы символические ссылки на каталоги MyDir\SubDir1\ и MyDir\SubDir2\.
И всё. MyDir - самый обычный каталог, поэтому мы можем дополнительно создавать внутри него какие-то файлы, подкаталоги, а также жёсткие и символические ссылки. А вот SubDir1 - это уже символическая ссылка, поэтому внутри неё ничего не создаётся - она уже ссылается на весь оригинальный подкаталог SubDir1, она уже дублирует его, так зачем же ещё создавать внутри какие-то жёсткие ссылки? То же самое относится, естественно, и к SubDir2.

Для более чёткого понимания приведу тут несколько упрощённый алгоритм работы программы (длинновато получается, но, надеюсь, прояснит ситуацию):
1. Во-первых, назовём корневым тот каталог, в котором мы выделили файлы и каталоги в Тотале (пусть на правой панели). Корневым каталогом назначения - каталог в противоположной (соответственно, левой) панели, где мы собираемся создавать ссылки.
2. Идём по списку выделенных файлов и каталогов. Если наткнулись на файл, то без раздумий создаём на него жёсткую ссылку в левой панели. Если на каталог - то см. следующий пункт.
3. Итак, у нас каталог. Смотрим на значение глубины рекурсии. Если 0, то не паримся, и просто создаём символическую ссылку в левой панели, и всё. А вот если у нас какое-то ненулевое значение, то см. пункт 4.
4. В левой панели создаём ПОДКАТАЛОГ с нужным именем (НЕ ССЫЛКУ, а именно подкаталог!). Теперь мысленно заходим на этой левой панели внутрь только что созданного подкаталога, а на правой панели - внутрь того каталога, который мы сейчас обрабатываем. Теперь мысленно выделяем всё, что есть на правой панели (все файлы и каталоги), и вызываем (тоже мысленно) саму себя - программу NTFS Links, для тех файлов и каталогов, которые мы только что мысленно выделили; а значение глубины рекурсии указываем на 1 меньшее, чем у нас сейчас (если оно -1, то так и оставляем). И всё, ждём, пока эта мысленная программа отработает по указанному алгоритму, а потом возвращаемся обратно в корневой каталог, и продолжаем обрабатывать следующий элемент списка.

В нашем примере выше (со значением 1) первые три пункта, надеюсь, понятны, а четвёртый разъясню чуть подробнее (на всякий случай; не все же знают, что такое рекурсия). Итак, прошли файлы file.dat и do.cmd, создали на них жёсткие ссылки, и дошли до каталога MyDir. Создаём в каталоге назначения (в левой панели) подкаталог с таким же именем - MyDir, и заходим внутрь него на обеих панелях. На левой панели пусто, на правой - два подкаталога SubDir1 и SubDir2, и файл text.txt. Мысленно выделяем их все, и запускаем (опять-таки, мысленно) программу NTFS Links, но значение глубины рекурсии теперь задаём на 1 меньше - у нас было 1, теперь стало 0. И смотрим, что происходит: программа пробегает эти три выделенных элемента - SubDir1, SubDir2, text.txt - первый из них каталог, значение глубины рекурсии 0, значит создаём в левой панели (а в этой панели открыт сейчас подкаталог MyDir!) символическую ссылку на SubDir1; для SubDir2 то же самое; text.txt - файл, для него создаём жёсткую ссылку. Всё, список закончился, эта наша "мысленная вторая программа NTFS Links" завершила свою работу. Теперь мы вспоминаем, что мы находимся в подкаталогах MyDir на обеих панелях. Поскольку вся работа внутри этого подкаталога завершена, мы можем возвращаться обратно в корневые каталоги и продолжать работу по обработке списка изначально выделенных файлов и каталогов. Но их больше нет, было всего три - file.dat, do.cmd, MyDir - и все три мы уже обработали. И в корневом каталоге назначения получили в точности ту структуру каталогов и ссылок, что я привёл выше. Всё, весь список обработан, программа завершает свою работу.

Надеюсь, стало хоть немного понятнее...

<!--QuoteBegin-Lazy Crazy+Dec 9 2004, 23:08--><div class='quotetop'>QUOTE(Lazy Crazy @ Dec 9 2004, 23:08)</div><div class='quotemain'><!--QuoteEBegin-->6. Я пользуюсь вторым вариантом, Tweak UI 2.10.0.0<!--QuoteEnd--></div><!--QuoteEEnd-->
Попробуй первый: <a href='http://download.microsoft.com/download/winme/Install/1.0/WinMe/EN-US/Tweakui.exe' target='_blank'>TweakUI 1.33</a>. Он подходит для Windows 95/98/ME/NT/2000, я пользуюсь им. Просто по привычке; не знал, что есть обновлённая версия, недавно наткнулся только. <!--emo&:)-->[img]style_emoticons/<#EMO_DIR#>/smile.gif[/img]<!--endemo--> Возможно, это глюк новой версии, а возможно и нет...

<!--QuoteBegin-Lazy Crazy+Dec 9 2004, 23:08--><div class='quotetop'>QUOTE(Lazy Crazy @ Dec 9 2004, 23:08)</div><div class='quotemain'><!--QuoteEBegin-->0. и 5. Если давать другие имена, то весь смысл теряется. Попробую аналогию: есть папки CD1, CD2, CD3... В каждой одинаковые подпапки - например, Архиваторы, Антивирусы, Редакторы и т.д. Но в разных папках в одних и тех же подпапках лежат разные файлы (например, в CD1\Архиваторы лежит WinRAR 3.40, а в CD2\Архиваторы - WinRAR 3.41). Мечталось, что зайдя в CDx (в котором собраны все ссылки) можно в одной папке Архиваторы найти там и WinRAR 3.40, и WinRAR 3.41. В моём случае и папок побольше, и структура их посложнее. Но это всё не важно, просто по ходу подумалось...<!--QuoteEnd--></div><!--QuoteEEnd-->
А-а, теперь понял, что тебе нужно... Тогда нужно иметь гарантию, что каталоги не пересекаются, т.е. что в CD1\Архиваторы и в CD2\Архиваторы нет ни одного повторяющегося файла или каталога. Более глубоко - пускай повторяются. Иначе говоря, ситуация
"CD1\Архиваторы\Winrar340\wrar.exe + CD2\Архиваторы\Winrar341\wrar.exe"
допустима, а ситуация, скажем,
"CD1\Архиваторы\Winrar340\wrar340.exe + CD2\Архиваторы\Winrar340\wrar341.exe"
недопустима. Если у тебя недопустимая ситуация, то единственный путь - это создать всё исключительно в виде жёстких ссылок (т.е. с параметром глубины рекурсии "-1"), но тогда их может быть многовато.
Ну а если всё нормально, то делаешь следующее:
1. Создаёшь "сборный" каталог (пусть, "CDx").
2. Заходишь на правой панели в CD1, на левой - в CDx. На правой всё выделяешь и вызываешь программу со значением глубины рекурсии 1.
3. На левой панели остаёшься в CDx, на правой заходишь в CD2. Повторяешь процедуру. И так для всех нужных каталогов. Разумеется, всё вышесказанное насчёт совпадения относится ко всем каталогам, которые ты объединяешь, а не только к CD1 и CD2.


Во, вроде, на всё ответил...
Флинт
Майор
 
Сообщений: 368
Зарегистрирован: Пн ноя 25, 2002 9:26 am
Откуда: Москва
Пункты репутации: 0

След.

Вернуться в Total Commander

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 18

cron