NTLinks + NTLinksMaker: создание и инфо о ссылках NTFS

Обсуждение только плагинов и утилит для Total Commander.

Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik

Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

NTLinks + NTLinksMaker: создание и инфо о ссылках NTFS

Сообщение MVV »

NTLinks - модуль для получения информации о точках переподключения, таких как точки соединения/монтирования и символические ссылки, а также о файловых жестких ссылках.

NTLinksMaker - утилита для создания всех типов NTFS-ссылок.

Информация о последней версии

Версия: 1.6.0.254 32/64
URL: NTLinks на wincmd.ru / NTLinks на totalcmd.net

Версия: 1.4.1.416 32/64
URL: NTLinksMaker на wincmd.ru / NTLinksMaker на totalcmd.net

Требования: Windows 2000 и выше, Total Commander :)


Особенности NTLinks:

+ получение индексов файлов, количества жестких ссылок и путей к ним
+ получение пути целевого объекта ссылок и реального пути объектов
+ поддержка символических ссылок, появившихся в Windows Vista/7
+ чтение/запись пути к целевому объекту для символических ссылок и точек соединения
+ сверхбыстрое сравнение жестких ссылок (в пределах одного логического диска)
+ поддержка Юникода и длинных путей

Особенности NTLinksMaker:

+ создание точек соединения, жестких ссылок, а также символических ссылок
+ возможность дублирования нескольких уровней каталогов обычными каталогами
+ возможность сохранения иерархии каталогов (для объектов из разных каталогов)
+ запрос повышения для операций, требующих прав администратора
+ возможность работы без отображения диалоговых окон
+ поддержка Юникода и длинных путей



Возвращаемые модулем NTLinks поля:
+ число жестких ссылок
+ индекс файла в файловой системе (для поиска жестких дубликатов)
+ тип объекта (файл, каталог или тип точки переподключения)
+ целевой объект, на который указывает точка переподключения
+ доступность целевого объекта
+ реальный путь любого файла/каталога в системе (раскрываются все ссылки в пути)
+ реальный размер файла (в случае символической ссылки на файл)
+ пути к жестким ссылкам
+ сравнение по индексам (из диалога синхронизации)

Для целевого объекта и реального пути возможны два варианта отображения - обычный и символьный, в котором точки монтирования остаются в виде уникальных идентификаторов, а не раскрываются в пути, также относительные пути символических ссылок отображаются в исходном виде. Каждое поле возвращает строку в Unicode, если используется ТК 7.50 и старше, и ANSI для старых версий.
Последний раз редактировалось MVV Пн ноя 14, 2016 15:39, всего редактировалось 13 раз.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

GGS писал(а):Имеем WinXP SP3; TC 7.55b1; NTLinks 1.0.0.56

Вот связка Unicode - Панель результатов поиска - NTLinks

Изображение

Понимаю, что дело в Unicode, но кто виноват, кого "пинать"?
В обычной панели TC индексы NTLinks видны.
Начинается... И NTLinks тебе в Unicode перевести? :D
Ладно, на днях сделаем.

Хотя, возможно ты и прав, если в обычной индексы видны, а в поиска - нет (причем, только для Unicode-имен), то судя по всему виноват ТК. Но в Юникод NTLinks все равно переведу.

Картинку не убирай свою, я запостю на офсайт багрепорт и дам ссылку на нее. Может, Гислер разберется.

Кстати, наблюдение - в обычной панели моя NTLinks показывает в графе Реальный путь имена в DOS-формате - видимо, в этом и дело - когда имя дают в DOS-формате, NTLinks находит файл, но если имя длинное - что видно в панели поиска - найти его не удается, так как оно содержит символы разных кодовых страниц.
Последний раз редактировалось MVV Пт апр 16, 2010 23:10, всего редактировалось 1 раз.
GGS
Сообщения: 322
Зарегистрирован: Сб май 02, 2009 13:00

Сообщение GGS »

MVV
Обратите внимание, что в колонке "Реальный путь" имена оказались без Unicode.

P.S. Синхронно запостили :D
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Скорее всего, ТК передает модулям, не поддерживающим Юникод, имена с символами из разных кодовых страниц в коротком формате - это позволяет им находить файлы, но видимо в панели поиска это либо забыто, либо неправильно работает.

Да, при отладке видно, что так оно и есть - потому и не работают никакие поля, требующие передачи API-функциям имени файла - то есть, никакие. :D
(поле типа возвращает нечто неопределенное, а поле реального пути - просто переданный путь, т.к. иного получить по неверному имени невозможно)
Последний раз редактировалось MVV Чт апр 01, 2010 21:20, всего редактировалось 1 раз.
GGS
Сообщения: 322
Зарегистрирован: Сб май 02, 2009 13:00

Сообщение GGS »

MVV
Информация к размышлению: обычная панель, но путь содержит пробелы

Изображение
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

А у меня работает с пробелами - путь "F:\TEMP\0 7\_t c\":

Код: Выделить всё

Имя	Индекс	Реальный путь	Тип TC	Тип NTLinks	DOS-имя
Čeština\	000A000000000A1B	F:\TEMP\0 7	Точка переподкл-я	Точка соединения	ETINA~1
Čeština.txt	000A000000000A1C	F:\Test 1\ETINA~1.TXT	Файл	Файл	ETINA~1.TXT
English.txt	000A000000000A1D	F:\Test 1\English.txt	Файл	Файл	ENGLISH.TXT
Espańol.txt	000A000000000A1E	F:\Test 1\ESPAOL~1.TXT	Файл	Файл	ESPAOL~1.TXT
Espańol long.txt	002B000000000C96	F:\Test 1\ESPAOL~2.TXT	Файл	Файл	ESPAOL~2.TXT
Français.txt	0054000000000A1F	F:\Test 1\FRANAI~1.TXT	Файл	Файл	FRANAI~1.TXT
Slovenský.txt	002D000000000C8E	F:\Test 1\SLOVEN~1.TXT	Файл	Файл	SLOVEN~1.TXT
Русский.txt	0024000000000C91	F:\Test 1\Русский.txt	Файл	Файл	4C13~1.TXT
Русский длинный.txt	0040000000000C93	F:\Test 1\Русский длинный.txt	Файл	Файл	E620~1.TXT
简体中文 (Simplified Chinese).txt	0030000000000C95	F:\Test 1\(SIMPL~1.TXT	Файл	Файл	(SIMPL~1.TXT
И в папке "F:\Test 1\" тоже. :D
GGS
Сообщения: 322
Зарегистрирован: Сб май 02, 2009 13:00

Сообщение GGS »

Странно это. Вот мои настройки из секции [CustomFields]

Код: Выделить всё

Widths4=92,25,-12,71,1024
Headers4=N\nИндекс объекта\nРеальный путь
Contents4=[=ntlinks.HLNK_Count]\n[=ntlinks.HLNK_Index]\n[=ntlinks.Obj_RealPath]
Options4=-1|1
и ещё

Код: Выделить всё

[ContentPlugins]
0=%Commander_Path%\Plugins\wdx\NTLinks\NTLinks.wdx
0_detect=
0_date=992040640
0_flags=0
Проверил ещё на Win7 с TC 7.50a - картина 1:1

MVV
Выложите куда-нибудь в архиве Ваш тестовый набор файлов с Unicode именами, попробую на них.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

У меня с твоим набором все равно показывает поля. Windows XP, ТК запущен под юзером.

А вот тестовые файлы:

Код: Выделить всё

MIME-Version: 1.0
Content-Type: application/octet-stream; name="Test 1.7z"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="Test 1.7z"

N3q8ryccAANolcRm0AAAAAAAAAAiAAAAAAAAAKfFm9UAAIF74PJ+AhDmwGsGDrfODvY7wF0+GISc
8zh6qlfutYPIw1xlaCN64TEz5DRK48Y0uu0cWkOUHZNNiZC3Ug+hD+tQrxPFroOOp+8QqexqX3nB
qgfNdX4n5U2EkElSGj3BUR19iK6v+H9nZgHK0m265XjDRncFGJr6eLqei2E0AiIwAtJmp2IN2pjx
nFImmBAe2cbhhjuemSYyMnj2GdYnvvRVW92w9PtdALcV+1i/M+2ADLYNQNlMH2iMAWwMh7Gm7kmG
2eZ1GXtBCNztn+AAFwYAAQmA0AAHCwEAASMDAQEFXQAQAAAMgaEKARExEfMAAA==
PS. Давай на ты, в одной стране живем. Да и в инете иное не принято. :wink:
GGS
Сообщения: 322
Зарегистрирован: Сб май 02, 2009 13:00

Сообщение GGS »

MVV писал(а):А вот тестовые файлы:
С ними в обычной панели индексы есть. :roll:

Вот моё:

Код: Выделить всё

MIME-Version: 1.0
Content-Type: application/octet-stream; name="Test 1.rar"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="Test 1.rar"

UmFyIRoHAM+QcwAADQAAAAAAAACfmXQggjgAFAAAABQAAAACwLBs0QAAgTwdMBgAgAAAAFRlc3Qg
MVxFc3Bhbm9sLnR4dAABzAnxBP/+RQBzAHAAYQDxAG8AbAANAAoAFEl0III9ABwAAAAcAAAAAv6I
OTMAAIE8HTAdAIAAAABUZXN0IDFcU2xvdmVuc2NpbmEudHh0AAHXC2ENBf/+UwBsAG8AdgBlAG4A
YQENAWkAbgBhAA0ACgANuXQggjoAEgAAABIAAAACos8lDgAAgTwdMBoAgAAAAFRlc3QgMVxUdXJr
Y2UudHh0AAHMBvwA58AD//5UAPwAcgBrAOcAZQANAAoABip0III9AAsAAAALAAAAAoCiav8AAIE8
HTAdAIAAAABUZXN0IDFckOPh4aqoqS50eHQABN8FIIFggZDAAtDz8fHq6OkNCg0K09Z04IAmAAAA
AAAAAAAAAgAAAAAAAIE8FDAGABAgAABUZXN0IDHEPXsAQAcA
MVV писал(а):Давай на ты, в одной стране живем.
Привычка. Я воспитывался когда страна называлась иначе и интернета не было.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Не знаю, у меня и для папки из твоего архива в 7.50 и в 7.55b1 в обычной панели индексы видны. Впрочем, это уже практически не имеет значения, раз будет Юникод-версия модуля.
GGS
Сообщения: 322
Зарегистрирован: Сб май 02, 2009 13:00

Сообщение GGS »

MVV
Чудеса продолжаются. Оказывается пробел в пути ничего не значит, а важен способ получения мною тестовых файлов.
Если Вы распакуете мой "Test 1.rar" и посмотрите индексы файлов, то в обычной панели TC они будут видны.
Создайте и выполните в папке с моими файлами следующий BAT-файл:

Код: Выделить всё

For %%A in (*.txt) do fsutil hardlink create %%A_ %%A
так вот, у файлов *.txt_ с Unicode именами индексы не показываются и имена в DOS-формате не те, что надо. Во как!
Команда DIR /X в этой папке показывает отсутствие 8.3 имён у этих файлов.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Ага, у меня были на то подозрения, что у тебя может быть отключена генерация имен в коротком формате. Что ж, выходит, fsutil не генерирует короткие имена... Тогда все очевидно. Но мой багрепорт, отправленный Гислеру, как раз про файлы, у которых короткие имена есть.

С минуты на минуту выложу Юникод-версию NTLinks и пойду наконец спать. =)

Всё, выложил=) допиши, пожалуйста, к названию темы " (Unicode)" (как в теме про Virtual Panel). За неимением первого поста буду хозяйничать во втором.

NTLinks 1.0.0.72:
+ поддержка Юникода
+ два новых поля RP_TargetW, Obj_RealPathW (возвращают Юникод-строки)
+ изменен предпочтительный базовый адрес модуля
* для несуществующих файлов отображался тип 'точка переподключения'
GGS
Сообщения: 322
Зарегистрирован: Сб май 02, 2009 13:00

Сообщение GGS »

Генерация коротких имён у меня не выключена, а вот fsutil действительно чудит. Бум знать.
MVV писал(а):допиши, пожалуйста, к названию темы " (Unicode)" (как в теме про Virtual Panel).
Не получается из-за огранмчения длины строки, как урезать?
MVV писал(а):За неимением первого поста буду хозяйничать во втором.
Может админы могут изменить эту "историческую несправедливость", пусть даже удалением моего первого поста или иным образом.

За 1.0.0.72 огромное спасибо.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Ну, если общие принципы тут такие же, как и на IPB, то надо либо удалить первый пост, либо найти на форуме мой более старый и добавить к теме.
Не получается из-за огранмчения длины строки, как урезать?
Спасибо, отлично. :)
За 1.0.0.72 огромное спасибо.
Обращайтесь. :wink:
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Частично проблему первого поста исправили в ТК 7.55pb2, но не для всех имен. Например, для имен, содержащих китайские символы, теперь плагинам посылается короткое имя, а для диакритики - все еще длинное (отписался на оф. форуме).

Кстати, возможно, тему стоит разделить на тему об NTLinks (посты 61422, 61464, 61470, 61478) с текущим названием и тему о проблемах работы не-юникодных WDX с юникодными именами в панели поиска.
Ответить