Příliš dlouhé názvy souborů - nějaká pomůcka?

Hlášení chyb a problémů programu Altap Salamander. Buďte, prosím, ve svých popisech co nejpodrobnější a vytvořte pro každý incident nový příspěvek. Nevkládejte programem generovaná hlášení o pádu programu, pošlete je e-mailem.
misko
Posts: 10
Joined: 10 Jan 2011, 09:47

Příliš dlouhé názvy souborů - nějaká pomůcka?

Post by misko »

Při migraci dat na diskových polí jsem se po čase opět setkal se stejným problémem: příliš dlouhé názvy souborů. Zpravidla se jedná o sehrávání složitých adresářových struktur (dokumentové generované adresáře Windows, zálohy strukturovaných adresářů uživatelů), občas jsou zbytečně dlouhá i samotná jména souborů. I když se svým způsobem jedná o uživatelskou chybu/neobratnost, v danou chvíli se s věcí musím vypořádat. Meditování a nadávání nepomůže...

V některých, spíše těch mezních, případech stačí tradiční,manuální postup: rozhodit zanořené podadresáře ven ze struktura a ručně zesynchronizovat. V případě sehrávání rozsáhlých a špatně strukturovaných záloh uživatelských dat to je na mrtvicu. Teoreticky by mohlo být lepší využít Robocopy v některé z jeho variant, ale když už je zle,tak skončí s chybovým hlášením i "robáč".

Nevíte někdo o nějaké utilitě, která by dokázala analyzovat tento druh problémů a pomoci při odchytu problémových cest a hluboko zanořených souborů s dlouhými jmény? Ideální by byl plugin pro AS :-). To byl samozřejmě žert. Ve skutečnosti nemám jasno, do jaké míry se AS s věcí vypořádává. V jedné ze starších diskusí bylo řečeno, že AS část omezení (256 znaků) dokáže překonat, ale spíš mu vadí příliš dlouhá cesta k souboru. /Jestli se nepletu, tak nějakou oklikou přes 8.3 jména./ Pokud si to dobře pamatuju, tak si s tím dokáže poradit bez mrknutí oka Symantec Backup Exec, ale momentálně jej nemám k dispozici.

Jakákoliv rada bude vítána. Prosím - neříkejte mi, že nejlepší je takové chuťovky vůbec nevytvářet. To bohužel vím :-(. Ale v určitých situacích s tím nemůžu nic dělat, jen přetrpět.

Díky

Michal

EDIT: Win Srv 2003 Eng /"lokál" nastaven na češtinu/ + AS 2.54
User avatar
Ether
Posts: 1471
Joined: 10 May 2007, 16:08
Location: Czech Republic
Contact:

Re: Příliš dlouhé názvy souborů - nějaká pomůcka?

Post by Ether »

misko wrote:Ve skutečnosti nemám jasno, do jaké míry se AS s věcí vypořádává.
NTFS svazky zvládají cesty délky kolem 32000 znaků. Salamander to umět může taky, současné omezení je víceméně umělé, kvůli kompatibilitě. Onehdá jsem navrhoval, aby si Salamander sám dlouhé názvy zkracoval, ale zatím z toho nic nevyšlo.
Ελληνικά rulez.
User avatar
SelfMan
Posts: 1142
Joined: 05 Apr 2006, 20:51
Contact:

Re: Příliš dlouhé názvy souborů - nějaká pomůcka?

Post by SelfMan »

Ja na kontrolu pouzivam PathScan (freeware)
http://www.softpedia.com/get/System/Fil ... Scan.shtml
Vobec by mi neprekazalo, keby to existovalo v AS ako plugin.
misko
Posts: 10
Joined: 10 Jan 2011, 09:47

Re: Příliš dlouhé názvy souborů - nějaká pomůcka?

Post by misko »

Děkuju všem za tipy.

Naštěstí nejsem v tuto chvíli nucen použít nic vysloveně destruktivního (tj. řešení, které definovaným způsobem pozmění stávající strukturu složek). Podařilo se mi postupně separovat "obtěžující" adresáře s nevhodnými názvy. Pro mé účely se nejvíce osvědčil tip od SelfMana - PathScan. To je přesně ono! Kdyby existoval podobný plugin... Ještě více by se mi líbilo, kdyby tato funkce byla obsažena také při vyhledávání (s možností skočit na vybraný soubor/adresář a na místě řešit), možná také jako volitelná funkce pro kopírování.

Převážně manuální kopírování mne navedlo na několik nejasností spojených s řešením, které docela šikovně používá AS 2.54:

1) je někde dokumentováno, kolik znaků celého "jména" (tj. filename + path) je schopen AS obsloužit (popř. za jakých podmínek a omezení)? PathScan na závěr vypíše soupis jmen s cestou včetně detekované délky. Délka jména je nastavitelná, potřeboval bych tedy znát chování AS co nejpřesněji -> viz dále.

2) AS evidentně vidí a je schopen porovnávat i soubory s delším názvem než 255 znaků. Neumí s nimi za všech okolností operovat, ale např. běžný compare (bez přímého porovnání obsahu) funguje korektně. Většinou.

3) AS umí vykopírovat příliš dlouhé jméno do rootu nebo složky s krátkým jednoznakovým názvem (např. "1"). Pokud se pokusím kopírovat kompletní strukturu, odmítne. Pokud vyseparuju obtěžující podadresáře, dokáže je aspoň kopírovat do pomocných složek. Kde je ale hranice, za kterou odmítně přístup k souboru totálně? I to jsem zaregistroval...

4) všechno tedy skutečně závisí na detailech toho, jakým způsobem a za jakých podmínek AS překonává limit.
---
5) jak by se Vám líbilo, kdyby bylo možné volitelně zapnout takový mód kopírování/přesouvání, který dočasně vypnul kompatibilitu se staršími a ne-NTFS systémy? Tedy plnou podporu 32k-znakových jmen. Koneckonců tyto nekompatibilní struktury při řešení operativních problémů stejně vytváříme - pracně, manuálně.
---
Ještě jedno - díky!

Michal

P.S.Nemohu to sice prokázat a jednoznačně reprodukovat, ale v jednom případě mi příkaz pro porovnání adresářů s dlouhými jmény spolehlivě shazuje AS. Dále jsem vypozoroval, že existuje - možná? - nějaká vazba mezi chováním při kopírování souborů s dlouhými jmény a se stavem souborového systému. Kontrola volume (chkdsk) pomohla - zdá se (zatím jen dohad). M.
misko
Posts: 10
Joined: 10 Jan 2011, 09:47

Re: Příliš dlouhé názvy souborů - nějaká pomůcka?

Post by misko »

Sumarizace testování problémových souborů programem PathScan:
Podle informací programu PathScan většina problémových cest (file+path) spadá do rozmezí 250-280 bytů dlouhého PATH. Dá se předpokládat, že řadě uživatelů by vyhověla podpora ca 300 bytových cest. V kombinaci s možností cíleně vyhledávat konflikty. Zbytek manuálně.
Docela by mne zajímaly zkušenosti ostatních uživatelů. S čím se setkali, s čím se setkávají pravidelně atp.
M.
User avatar
Ether
Posts: 1471
Joined: 10 May 2007, 16:08
Location: Czech Republic
Contact:

Re: Příliš dlouhé názvy souborů - nějaká pomůcka?

Post by Ether »

misko wrote:řadě uživatelů by vyhověla podpora ca 300 bytových cest
Když už porušit kompatibilitu, tak úplně. Nemá smysl se držet při zemi, když stejně nad 260 znaků nebudou cesty fungovat bez ohledu na to, jestli překročí limit o 40 nebo o 1000.
misko wrote:Docela by mne zajímaly zkušenosti ostatních uživatelů.
Některé programy s oblibou vytvářejí soubory s dost dlouhým názvem, a když to náhodou chci nakopírovat do nějaké složitější adresářové struktury, tak to dost překáží. Vždycky jsem to řešil pomocí Batch Rename, případně prostě zuřivě klepal na Skip, pokud to byly nějaké dočasné soubory.
Ελληνικά rulez.
misko
Posts: 10
Joined: 10 Jan 2011, 09:47

Re: Příliš dlouhé názvy souborů - nějaká pomůcka?

Post by misko »

Ether wrote:
misko wrote:řadě uživatelů by vyhověla podpora ca 300 bytových cest
Když už porušit kompatibilitu, tak úplně. Nemá smysl se držet při zemi, když stejně nad 260 znaků nebudou cesty fungovat bez ohledu na to, jestli překročí limit o 40 nebo o 1000....
Salamander limit obchází už teď, aspoň do jisté míry. Ovšem nevíme, do jaké. A hlavně nevíme to přesně. To mi trošku vadí.

Pokud jde o limit 300 znaků: já měl na mysli dočasné řešení nebo doladění toho nynějšího. Pokud je to vůbec možné a pokud to stojí za to. To musí odhadnout autoři. Pokud se nepletu, tak dotažená podpora UNICODE by umožnila robustní podporu 32 000 bytových cest a v podstatě libovolně dlouhých jmen souborů. To ale není na pořadu dne. Stačilo by, aby bylo možno dočasně a za jasně definových podmínek synchronizovat na NTFS ExLFN dejme tomu 300 byte, lépe 400-500. Prostě umožnit migraci dat v identické podobě, i když jsou nerozumně a neefektivně strukturovány a pojmenovány. NTFS a souborový systém s tím problém nemají.

Michal

P.S. Pokračoval jsem v namátkovém testování nesetříděných záloh (exportované EML soubory s dlouhými jmény atp.) z uživatelských účtů. V několika případech jsem se dostal na hodnotu kolem 300-309 byte. Takže bych optoval spíše pro podporu cest 400 a více byte.
P.S.S. V rámci reálné práce s daty (migrace dat) se mi podařilo vytvořit takovou datovou strukturu, která při compare opakovaně shazuje AS. Bugreport zasílám vývojářům. Pro jistotu zkusím na daných volumech provést CHKDSK.
Jan Rysavy
ALTAP Staff
ALTAP Staff
Posts: 5229
Joined: 08 Dec 2005, 06:34
Location: Novy Bor, Czech Republic
Contact:

Re: Příliš dlouhé názvy souborů - nějaká pomůcka?

Post by Jan Rysavy »

Salamander dlouhé 32K cesty nepodporuje. Důvodem bylo (také to), že tyto cesty podporovala pouze část Windows API, takže by nefungovaly celé části Salamandera. Dnes pod Windows 7 může být ze strany MS věc dořešenější, to jsme zatím nezkoumali.

Na několika místech je použit trik, kdy se cesta zpracuje pomocí krátkých cest 8.3 (C:\PROGRA~1), což bude to, na co jste narazil.
misko
Posts: 10
Joined: 10 Jan 2011, 09:47

Re: Příliš dlouhé názvy souborů - nějaká pomůcka?

Post by misko »

Jan Rysavy wrote:Salamander dlouhé 32K cesty nepodporuje. Důvodem bylo (také to), že tyto cesty podporovala pouze část Windows API, takže by nefungovaly celé části Salamandera. Dnes pod Windows 7 může být ze strany MS věc dořešenější, to jsme zatím nezkoumali.

Na několika místech je použit trik, kdy se cesta zpracuje pomocí krátkých cest 8.3 (C:\PROGRA~1), což bude to, na co jste narazil.
Mohu se zeptat na kterých místech? Prostě abych věděl, jak mám daný potenciál co nejlépe využít a vyhnout se "úzkým hrdlům".

S ohledem na Vaše vytížení chápu, že není lehké najít "energetickou kapacitu" na nějaké obskurní a zřídka užívané funkce. Budoucí UNICODE verze asi situaci ExLFN (extra long...) změní k lepšímu. Je reálné uvažovat o možnosti něčeho jako "synchromode", když by AS s omezenými funkcemi a pouze v definovaném kontextu (NTFS, OS...) umožnil 32k cesty? Anebo raději jako plugin? Co by se dalo reálně dělat? V podstatě ve vypjatých situacích potřebujeme copy/move/compare.Cokoliv nad tuto úroveň už není tak úplně věcí AS (jsou tu specializované utility, vyhledáče LFN a samozřejmě zlatý dobrý manuální přístup).

Děkuji za věcnou odpověď!
Michal
Jan Rysavy
ALTAP Staff
ALTAP Staff
Posts: 5229
Joined: 08 Dec 2005, 06:34
Location: Novy Bor, Czech Republic
Contact:

Re: Příliš dlouhé názvy souborů - nějaká pomůcka?

Post by Jan Rysavy »

Máme tu changelog, ale nějak mi nedává smysl, museli bychom provést audit zdrojových kódů. Takže místa bez bližšího zkoumání nemohu označit. Rozhodně je něco v diskových operacích, něco v QuickRename (F2), něco ve View&Edit.

Pokud by se měly dlouhé cesty řešit, mělo by jít o změny v jádře Salamandera a následně v pluginech. Samozřejmě by šel vytvořit plugin, který by dlouhé cesty vyhledal. Ale dopsat podporu pro 32K cesty pouze pomocí pluginu není reálné.
misko
Posts: 10
Joined: 10 Jan 2011, 09:47

Re: Příliš dlouhé názvy souborů - nějaká pomůcka?

Post by misko »

Jan Rysavy wrote:Máme tu changelog, ale nějak mi nedává smysl, museli bychom provést audit zdrojových kódů. Takže místa bez bližšího zkoumání nemohu označit. Rozhodně je něco v diskových operacích, něco v QuickRename (F2), něco ve View&Edit.

Pokud by se měly dlouhé cesty řešit, mělo by jít o změny v jádře Salamandera a následně v pluginech. Samozřejmě by šel vytvořit plugin, který by dlouhé cesty vyhledal. Ale dopsat podporu pro 32K cesty pouze pomocí pluginu není reálné.
To by celkem odpovídalo, QuickRename funguje (a to je za těchto situací k nezaplacení!), copy/compare také (minimálně umožní kopírovat ExLFN do rootu, i když odmítnoul kopírovat celou vnořenou dlohou cestu.). Rozhodně jsem s řešením spokojený, ne že ne :-). View/Edit jsem zas tak moc nepotřeboval. Mimochodem Compare funguje asi "nejdále". I to, co musím manuálně rozkopírovat do jednotlivých adresářů a pak sehrávat, umožní srovnat. S určitou dosaženou hloubkou cesty pak končí (v některých případech s ohlášenou chybou a nutností Terminate). Rozhodně tu nástroje pro řešení problémy JSOU a FUNGUJÍ. Hlavně je probůh zachovejte.

Vaše hodnocení situace en bloc beru na vědomí a nečekám zázraky. Pokud jde o případný plugin, tak jsem měl na mysli kromě pouhého vyhledávání (což by nebylo špatné!) něco jako robocopy.exe. Víceméně nezávislé na vlastním AS. Ale to je nejspíš jen taková laická představa. Docela by se mi líbil plugin v podobě Robocopy GUI :-). Ale to je z licenčních důvodů nepředstavitelné.

Mimochodem command prompt robocopy.exe podporuje extra LFN. S jeho grafickými nadstavbami jsem neměl štěstí (RichCopy je v mé konfiguraci padavé a nepodporuje konzistentně ExLFN, Robocopy GUI nefunguje správně.)

Děkuju!

Michal
User avatar
Valda
Posts: 16
Joined: 10 Dec 2005, 18:07
Location: Broumov
Contact:

Re: Příliš dlouhé názvy souborů - nějaká pomůcka?

Post by Valda »

Také řeším občas podobný problém, kdy potřebuji zazálohovat adresáře uživatelů (například před přeinstalací OS).
(třeba TC 7 to umí, ale nemám ho rád :x )

Také se často setkávám s neschopností smazat příliš dlouhé nebo chybné názvy souborů, většinou z TEMPu IE (zpravidla vyřeší přeskočení a následný QuickRename)

Dále se setkávám s nemožností zkopírování některých souborů na Holandských Windows (průzkumník je zkopíruje, AS zobrazuje a pravděpodobně i používá nesprávné názvy), ale je to tak zřídka se vyskytující situace, že to asi nemá smysl řešit.
User avatar
ino
Posts: 440
Joined: 09 Dec 2005, 14:59
Location: Brno, Czech Republic

Re: Příliš dlouhé názvy souborů - nějaká pomůcka?

Post by ino »

Valda wrote: Také se často setkávám s neschopností smazat příliš dlouhé nebo chybné názvy souborů, většinou z TEMPu IE (zpravidla vyřeší přeskočení a následný QuickRename)
IMHO data z tempu pred zalohovanim promazavam, neb je nema smysl vubec zalohovat.
User avatar
SelfMan
Posts: 1142
Joined: 05 Apr 2006, 20:51
Contact:

Re: Příliš dlouhé názvy souborů - nějaká pomůcka?

Post by SelfMan »

Maly tip - ICSweep

Command line tool. icsweep.exe /all precisti vsetky profily od bordelu v TEMP a Temporaty Internet Files.
Post Reply