View previous topic :: View next topic |
Author |
Message |
Ник
Joined: 15 Dec 2004 Posts: 1256 Location: Москва
|
(Separately) Posted: Fri Aug 18, 2006 02:27 Post subject: Проблема сверхдлинных имён файлов |
|
|
Есть ТК 6.55, Вин2К на ФАТ32.
В результате автоматического экспорта писем из Бата получил файлы с длиной имени больше 210 знаков.
Такие файлы невозможно ни переименовать, ни перенести, ни заархивировать.
Можно ли с помощью ТК и плагинов что-то сделать с такими файлами (просмотреть их тоже не удаётся)?
Спасибо! _________________ Xubuntu |
|
Back to top |
|
 |
Forward
Joined: 15 Jun 2006 Posts: 273
|
(Separately) Posted: Fri Aug 18, 2006 02:51 Post subject: |
|
|
А из explorer'a (придется его вспомнить ) нормально действует? Попробуй. Если тоже ничего не работает - скорее всего, проблема собственно винды. В ней есть такой глюк - бывает, не работает с длинными именами и путями файлов, например, у меня был такой случай - при разборе своей коллекции софта закинул дистриб Delphi куда-то в далекую временную папку, а в самом дистрибе были файлы вложенностью эдак каталогов на пятнадцать... И если раньше был путь типа E:\Installs\Delphi\[15 каталогов], то стал E:\Temp\Installs\Программирование\Языки программирования\Delphi\Delphi7\[15 каталогов]. Помогло вырезание и вставка через карман.
И еще (хотя вряд ли сработает, просто случайная мысль) попробуй проделать эти операции каким-нибудь старым ФМ без поддержки длинных имен файлов, например, каким-нибудь NC для DOS . |
|
Back to top |
|
 |
Lamer
Joined: 20 Mar 2006 Posts: 522
|
(Separately) Posted: Fri Aug 18, 2006 03:01 Post subject: |
|
|
NC под Win2k
Проще наверное временно отключить длинные имена в Totale?!
А ещё можно попробовать поковыряться облочкой winrara.У неё поддержка такого безобразия была выполнена насколько возможно толково.
А вообще то на FAT32 я бы взял, и втупую поряпал нортон утилитами.В частности нортон диск эдитором. |
|
Back to top |
|
 |
Forward
Joined: 15 Jun 2006 Posts: 273
|
(Separately) Posted: Fri Aug 18, 2006 03:09 Post subject: |
|
|
Quote: | Проще наверное временно отключить длинные имена в Totale?! |
И такая мысль была, правда, ее тут же затмила мысль другая, что, скорее, тот ФМ, что изначально был направлен на работу с короткими именами, и сработает вероятнее. Впрочем, это нисколько не уменьшает моей привязанности к Тоталу. |
|
Back to top |
|
 |
Ник
Joined: 15 Dec 2004 Posts: 1256 Location: Москва
|
(Separately) Posted: Fri Aug 18, 2006 14:36 Post subject: |
|
|
Волков Коммандер не сработал - срабатывает ТК с отключёнными длинными именами файлов!!!
ТК ФОРЕВЕР!!!  _________________ Xubuntu |
|
Back to top |
|
 |
Вахмурка

Joined: 27 Dec 2004 Posts: 2586 Location: Большая деревня Москва
|
(Separately) Posted: Sun Aug 20, 2006 22:52 Post subject: |
|
|
А MultiRenameTool эти имена рюхает? Если да, то их можно укоротить до приемлемой длины. Еще одна идея - сляпать программку или скрипт. Читает имя файла и работает как с длинной символьной строкой. Там можно много чего сделать. Скажем, сравнивать их посимвольно до первого отличия и обрубать. Типа было:
Code: |
ExtremelyLongFilenameOfFileMyWordDocument.ext
ExtremelyLongFilenameOfFileMyPicture.ext
|
стало:
Code: |
ExtremelyLongFilenameOfFileMyW.ext
ExtremelyLongFilenameOfFileMyP.ext
|
_________________ Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон) |
|
Back to top |
|
 |
Ник
Joined: 15 Dec 2004 Posts: 1256 Location: Москва
|
(Separately) Posted: Mon Aug 21, 2006 00:04 Post subject: |
|
|
Проблема в том, что ТК тоже эти сверхдлинные имена файлов не видит - невозможны никакие операции с этими файлами, включая перенос и просмотр - но он видит ДОС-имена этих файлов и позволяет их перенести в другую директорию (Волков Коммандер тоже видит ДОС-имена, но далеко не всех файлов в данной директории - их там почти 5 тысяч + он не может просматривать внутренность файла в Вин 1251 кодировке).
При этом их слишком длинные Виндовые имена затираются и остаются только ДОС-имена (они же становятся Виндовыми).
После этого такие файлы можно переименовывать и т.п.
ИМХО, никакие файловые операции ни с через какие утилиты для файлов со слишком длинными Виндовыми именами невозможны - можно (и приходится) оперировать только с ДОС-именами (соответственно о переименовании до примитивного затирания Виндовых имён речи не идёт)... _________________ Xubuntu |
|
Back to top |
|
 |
Lamer
Joined: 20 Mar 2006 Posts: 522
|
(Separately) Posted: Mon Aug 21, 2006 00:10 Post subject: |
|
|
Оставляя остальные проблемы в стороне,хочу внести поправку,чтобы восстановить справедливость: VC читает СР1251 (по Ф8 кажется,давненько не брал в руки шашек). |
|
Back to top |
|
 |
Вахмурка

Joined: 27 Dec 2004 Posts: 2586 Location: Большая деревня Москва
|
(Separately) Posted: Mon Aug 21, 2006 00:35 Post subject: |
|
|
Замечание с программной обработкой имен остается. Если у тебя не установлено никаких языков программирования и даже PowerPro, попробуй сляпать прогу на QuickBasic - он входит в стандартную поставку DOS (qbasic.exe).
Еще одно предложение - а нельзя ли их еще раз экспортнуть из Бата? И вообще - как эти горе-программеры мыслили обработку таких файлов? Может, ты просто не так экспортил? _________________ Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон) |
|
Back to top |
|
 |
Ник
Joined: 15 Dec 2004 Posts: 1256 Location: Москва
|
(Separately) Posted: Mon Aug 21, 2006 00:48 Post subject: |
|
|
2Lamer
Ну, значит, в моей версии нет соответствующих расширений.
2Вахмурка
Что значит "не так экспортил" - какие могут вообще быть варианты, кроме %OSUBJECT ?!?
Повторяю: проблема не в программах, а исключительно в файловой таблице Виндов. Строго говоря, есть две таблицы - ДОС-имён и Виндовых имён.
Винды позволяют сделать файл с "неправильным" Виндовым именем - но, после создания такого файла, работа с ним становится возможна только через ДОС-имя (с затиранием Виндового имени).
Это известная проблема Виндов.
Любая программа, обращающаяся к Виндовому имени файла, наткнётся на его блокировку.
Чтобы эту проблему решить, не обнуляя Виндовое имя файла, нужно (ИМХО) работать с длинными именами файлов на уровне ФАТ прямо на диске (по секторам) - кто это умеет и какие инструменты для этого нужны?
Вопросы разработчикам Бата я задавал, они обещали проверить ситуацию и до сих пор думают.
Отчасти проблема может быть в том, что у меня ФАТ32, а не НТФС - отсюда длинное имя файла приобретает такую важность (нет мастер-таблицы файлов). _________________ Xubuntu |
|
Back to top |
|
 |
Alextp

Joined: 06 Feb 2005 Posts: 4957
|
|
Back to top |
|
 |
Вахмурка

Joined: 27 Dec 2004 Posts: 2586 Location: Большая деревня Москва
|
(Separately) Posted: Mon Aug 21, 2006 02:34 Post subject: |
|
|
2Ник
Quote: | Что значит "не так экспортил" - какие могут вообще быть варианты, кроме %OSUBJECT ?!? |
Не надо кричать . Я просто не работаю с Батом. Сестра жаловалась, что там глюк на глюке, и перешла на Thunderbird. У меня самого Нетшкаф.
2Alextp
Точнее, 255. _________________ Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон) |
|
Back to top |
|
 |
Alextp

Joined: 06 Feb 2005 Posts: 4957
|
(Separately) Posted: Mon Aug 21, 2006 02:40 Post subject: |
|
|
2Вахмурка
Нет, 255 это string
260, сейчас специально смотрел. |
|
Back to top |
|
 |
Вахмурка

Joined: 27 Dec 2004 Posts: 2586 Location: Большая деревня Москва
|
(Separately) Posted: Mon Aug 21, 2006 03:13 Post subject: |
|
|
А разве там не все числа есть степени двойки? На низком уровне ведь это должно быть представлено целым числом бит. Если 260, значит, 8 бит чуточку не хватает. То есть используется 9, так? А куда девать оставшиеся 512-261=251 бит? Другие флаги? Это где-нибудь расписано?
Что касается С++, то там константа MAX_PATH равна все-таки 255. _________________ Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон) |
|
Back to top |
|
 |
Lamer
Joined: 20 Mar 2006 Posts: 522
|
(Separately) Posted: Mon Aug 21, 2006 03:24 Post subject: |
|
|
Вахмурка, у тебя плюсы какие-то особенные . Сейчас специально не поленился,решил память проверить,открыл stdlib.h
чёрным по белому #define _MAX_PATH 260 /* max. length of full pathname */
и #define _MAX_PATH 256 /* max. length of full pathname */ для Маса. У тебя Эппл Макинтош стоит?  |
|
Back to top |
|
 |
|