Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Проблема сверхдлинных имён файлов
Goto page 1, 2  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы printer-friendly view
View previous topic :: View next topic  
Author Message
Ник



Joined: 15 Dec 2004
Posts: 1256
Location: Москва

Post (Separately) Posted: Fri Aug 18, 2006 02:27    Post subject: Проблема сверхдлинных имён файлов Reply with quote

Есть ТК 6.55, Вин2К на ФАТ32.

В результате автоматического экспорта писем из Бата получил файлы с длиной имени больше 210 знаков.
Такие файлы невозможно ни переименовать, ни перенести, ни заархивировать.
Можно ли с помощью ТК и плагинов что-то сделать с такими файлами (просмотреть их тоже не удаётся)?

Спасибо!
_________________
Xubuntu
Back to top
View user's profile Send private message
Forward



Joined: 15 Jun 2006
Posts: 273

Post (Separately) Posted: Fri Aug 18, 2006 02:51    Post subject: Reply with quote

А из explorer'a (придется его вспомнить Smile ) нормально действует? Попробуй. Если тоже ничего не работает - скорее всего, проблема собственно винды. В ней есть такой глюк - бывает, не работает с длинными именами и путями файлов, например, у меня был такой случай - при разборе своей коллекции софта закинул дистриб Delphi куда-то в далекую временную папку, а в самом дистрибе были файлы вложенностью эдак каталогов на пятнадцать... И если раньше был путь типа E:\Installs\Delphi\[15 каталогов], то стал E:\Temp\Installs\Программирование\Языки программирования\Delphi\Delphi7\[15 каталогов]. Помогло вырезание и вставка через карман.
И еще (хотя вряд ли сработает, просто случайная мысль) попробуй проделать эти операции каким-нибудь старым ФМ без поддержки длинных имен файлов, например, каким-нибудь NC для DOS Smile .
Back to top
View user's profile Send private message
Lamer



Joined: 20 Mar 2006
Posts: 522

Post (Separately) Posted: Fri Aug 18, 2006 03:01    Post subject: Reply with quote

NC под Win2k Very Happy
Проще наверное временно отключить длинные имена в Totale?!

А ещё можно попробовать поковыряться облочкой winrara.У неё поддержка такого безобразия была выполнена насколько возможно толково.

А вообще то на FAT32 я бы взял, и втупую поряпал нортон утилитами.В частности нортон диск эдитором.
Back to top
View user's profile Send private message
Forward



Joined: 15 Jun 2006
Posts: 273

Post (Separately) Posted: Fri Aug 18, 2006 03:09    Post subject: Reply with quote

Quote:
Проще наверное временно отключить длинные имена в Totale?!

И такая мысль была, правда, ее тут же затмила мысль другая, что, скорее, тот ФМ, что изначально был направлен на работу с короткими именами, и сработает вероятнее. Впрочем, это нисколько не уменьшает моей привязанности к Тоталу.
Back to top
View user's profile Send private message
Ник



Joined: 15 Dec 2004
Posts: 1256
Location: Москва

Post (Separately) Posted: Fri Aug 18, 2006 14:36    Post subject: Reply with quote

Волков Коммандер не сработал - срабатывает ТК с отключёнными длинными именами файлов!!!
ТК ФОРЕВЕР!!! Smile
_________________
Xubuntu
Back to top
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2586
Location: Большая деревня Москва

Post (Separately) Posted: Sun Aug 20, 2006 22:52    Post subject: Reply with quote

А MultiRenameTool эти имена рюхает? Если да, то их можно укоротить до приемлемой длины. Еще одна идея - сляпать программку или скрипт. Читает имя файла и работает как с длинной символьной строкой. Там можно много чего сделать. Скажем, сравнивать их посимвольно до первого отличия и обрубать. Типа было:
Code:

ExtremelyLongFilenameOfFileMyWordDocument.ext
ExtremelyLongFilenameOfFileMyPicture.ext

стало:
Code:

ExtremelyLongFilenameOfFileMyW.ext
ExtremelyLongFilenameOfFileMyP.ext

_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
Ник



Joined: 15 Dec 2004
Posts: 1256
Location: Москва

Post (Separately) Posted: Mon Aug 21, 2006 00:04    Post subject: Reply with quote

Проблема в том, что ТК тоже эти сверхдлинные имена файлов не видит - невозможны никакие операции с этими файлами, включая перенос и просмотр - но он видит ДОС-имена этих файлов и позволяет их перенести в другую директорию (Волков Коммандер тоже видит ДОС-имена, но далеко не всех файлов в данной директории - их там почти 5 тысяч + он не может просматривать внутренность файла в Вин 1251 кодировке).
При этом их слишком длинные Виндовые имена затираются и остаются только ДОС-имена (они же становятся Виндовыми).
После этого такие файлы можно переименовывать и т.п.

ИМХО, никакие файловые операции ни с через какие утилиты для файлов со слишком длинными Виндовыми именами невозможны - можно (и приходится) оперировать только с ДОС-именами (соответственно о переименовании до примитивного затирания Виндовых имён речи не идёт)...
_________________
Xubuntu
Back to top
View user's profile Send private message
Lamer



Joined: 20 Mar 2006
Posts: 522

Post (Separately) Posted: Mon Aug 21, 2006 00:10    Post subject: Reply with quote

Оставляя остальные проблемы в стороне,хочу внести поправку,чтобы восстановить справедливость: VC читает СР1251 (по Ф8 кажется,давненько не брал в руки шашек).
Back to top
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2586
Location: Большая деревня Москва

Post (Separately) Posted: Mon Aug 21, 2006 00:35    Post subject: Reply with quote

Замечание с программной обработкой имен остается. Если у тебя не установлено никаких языков программирования и даже PowerPro, попробуй сляпать прогу на QuickBasic - он входит в стандартную поставку DOS (qbasic.exe).
Еще одно предложение - а нельзя ли их еще раз экспортнуть из Бата? И вообще - как эти горе-программеры мыслили обработку таких файлов? Может, ты просто не так экспортил?
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
Ник



Joined: 15 Dec 2004
Posts: 1256
Location: Москва

Post (Separately) Posted: Mon Aug 21, 2006 00:48    Post subject: Reply with quote

2Lamer
Ну, значит, в моей версии нет соответствующих расширений.

2Вахмурка
Что значит "не так экспортил" - какие могут вообще быть варианты, кроме %OSUBJECT ?!?

Повторяю: проблема не в программах, а исключительно в файловой таблице Виндов. Строго говоря, есть две таблицы - ДОС-имён и Виндовых имён.
Винды позволяют сделать файл с "неправильным" Виндовым именем - но, после создания такого файла, работа с ним становится возможна только через ДОС-имя (с затиранием Виндового имени).
Это известная проблема Виндов.

Любая программа, обращающаяся к Виндовому имени файла, наткнётся на его блокировку.
Чтобы эту проблему решить, не обнуляя Виндовое имя файла, нужно (ИМХО) работать с длинными именами файлов на уровне ФАТ прямо на диске (по секторам) - кто это умеет и какие инструменты для этого нужны?

Вопросы разработчикам Бата я задавал, они обещали проверить ситуацию и до сих пор думают.
Отчасти проблема может быть в том, что у меня ФАТ32, а не НТФС - отсюда длинное имя файла приобретает такую важность (нет мастер-таблицы файлов).
_________________
Xubuntu
Back to top
View user's profile Send private message
Alextp



Joined: 06 Feb 2005
Posts: 4957

Post (Separately) Posted: Mon Aug 21, 2006 02:07    Post subject: Reply with quote

2Ник
Только не "длиннее 210", а "длиннее 260". Константа max_path у нас равна 260.
_________________
UniViewer - CudaText - LogViewer
Back to top
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2586
Location: Большая деревня Москва

Post (Separately) Posted: Mon Aug 21, 2006 02:34    Post subject: Reply with quote

2Ник
Quote:
Что значит "не так экспортил" - какие могут вообще быть варианты, кроме %OSUBJECT ?!?

Не надо кричать Smile. Я просто не работаю с Батом. Сестра жаловалась, что там глюк на глюке, и перешла на Thunderbird. У меня самого Нетшкаф.

2Alextp
Точнее, 255.
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
Alextp



Joined: 06 Feb 2005
Posts: 4957

Post (Separately) Posted: Mon Aug 21, 2006 02:40    Post subject: Reply with quote

2Вахмурка
Нет, 255 это string Smile
260, сейчас специально смотрел.
Back to top
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2586
Location: Большая деревня Москва

Post (Separately) Posted: Mon Aug 21, 2006 03:13    Post subject: Reply with quote

А разве там не все числа есть степени двойки? На низком уровне ведь это должно быть представлено целым числом бит. Если 260, значит, 8 бит чуточку не хватает. То есть используется 9, так? А куда девать оставшиеся 512-261=251 бит? Другие флаги? Это где-нибудь расписано?
Что касается С++, то там константа MAX_PATH равна все-таки 255.
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
Lamer



Joined: 20 Mar 2006
Posts: 522

Post (Separately) Posted: Mon Aug 21, 2006 03:24    Post subject: Reply with quote

Вахмурка, у тебя плюсы какие-то особенные Very Happy . Сейчас специально не поленился,решил память проверить,открыл stdlib.h
чёрным по белому #define _MAX_PATH 260 /* max. length of full pathname */
и #define _MAX_PATH 256 /* max. length of full pathname */ для Маса. У тебя Эппл Макинтош стоит? Wink
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы All times are GMT + 4 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group