Mafia II

TAB v názvu souborů? Ale fuj!

Únor 5th, 2008

Se stěhováním do nových kanceláří muselo zákonitě dojít i ke stěhování souborů. Řeknete si, že to není nic světoborného, prostě se soubory překlopí na jiný stroj a vše poběží dál. Problém ale nastává pokud přesouváte soubory mezi různými operačními systémy.

Na hlavní pobočce se používá (bohužel) Linux, běží na něm několik interních aplikací a hlavně filesystem intranetu (přístupný jako sdílená složka pomocí démona Samby), tedy nějaký EXT. Nový server už běží na Windows 2003 Server for Small Bussiness Server (pro zarputilé zastánce linuxu – ne linux není lepší, není rychlejší a zdaleka toho neumí tolik co Windows, intranetový systém SharePoint Services, Exchange server, VPN, doména, správa uživatelů…vše je jen otázkou „několika kliknutí“, takové pohodlí, množství a kvalitu služeb linux prostě nemá a dlouho mít nebude), tedy NTFS. Překlopit se muselo cca. 120Gb dat z toho nemalá část jsou emaily vybírané démonem a ukládané jako .eml soubory a to konkrétně jako [datum]-[subjekt].eml. Pokud ovšem subjekt emailu obsahoval tabulátor, byl uložen i s ním v názvu. Ani samba ho k mému údivu nepřevede na nějaký „bezpečný“ znak a tak při prostém kopírování na windowsový filesystem na prvním nestandardně pojmenovaném souboru kopírováni spadne.

Je zarážející že vývojaři vymyslí takovou (s prominutím) hovadinu a toto umožní, tabulátor má smysl v textovém dokumentu, ale v jeho názvu nemá co dělat, vždyť většina aplikací a systémů používá klávesu TAB na přechod na další prvek popřípadě „inteligentní doplňování“ v konzoli (linux). V Microsoftu si toto už dávno uvědomili a podobným nesmyslům brání, tab do názvu souboru prostě nejde uložit, přitom ho ale umožňují číst a tím zvyšují kompatibilitu s ostatnímy systémy které nejsou na takové úrovni.

Pro mne to znamenalo napsat si v Delphách jednoduchou aplikaci, která rekurzivní funkcí prohledá všechny adresáře, zkontroluje názvy, připraví si platný název souboru a pomocí něho soubor zkopíruje do cílového místa. Je to škoda, několik hodin strávených kopírováním, hledáním proč to nefunguje a psaním aplikace, která to napraví. Stačilo by kdyby se programátoři linuxových FS zamysleli…tabulátor nemá prostě v názvu souboru co dělat…

Aplikaci si můžete včetně zrojových kódů stáhnout zde: Lin2WinCopy.zip. Jen upozorňuji, že byla psána narychlo a jen pro tento účel, není určena pro širokou veřejnost, ale jen pro ty kteří vědí jak ji správně použít. Zříkám se veškeré odpovědnosti za škody způsobené jejím používáním.

Vložty komentář