Pokud pracujete s Windows dostatečně dlouhou dobu, zejména se složkami a soubory s dlouhými názvy, dojde k bizarní chybě : Systém Windows hlásí, že cesta k souboru nebo název souboru je příliš dlouhá, než se přesune na nový cíl nebo dokonce odstraní. Co je to?
Hej How-To Geek!
Takže druhý den jsem reorganizoval některé soubory na svém počítači, vytvářel složky, takové věci. Pak, když jsem přemístil nějaké soubory do složky, dostanu zprávu, že výsledná cesta složky bude příliš dlouhá. Byl jsem zmatený. Vím, že každý OS od DOSu podporuje dlouhé názvy souborů, ale Windows tvrdí, že cesta je příliš dlouhá? Proč se to stalo?
Upřímně,
pan. Rozrušený
Problém, kterým narazíte, je nešťastná křižovatka dvou systémů, která v takových případech způsobuje chybu. Abychom přesně pochopili, odkud pochází chyba, musíme se ponořit do historie dlouhých názvů souborů (LFN) a jak Windows s nimi komunikuje, než se dostaneme do řešení.
Dlouhé názvy souborů byly představeny prostřednictvím základní architektury MS-DOS , v systému Windows 95. Nový systém LFN umožnil název a adresář až 255 znaků. Toto bylo vítané rozšíření předchozího systému názvů souborů, obvykle nazývaného 8.3 název souboru, protože název byl omezen na osm znaků a třímístné rozšíření, ale také známé jako Short Filename (SFN). Jak si dokážete představit, v té době se stále nacházely spousty aplikací založených na DOSu a bylo víc než pár bolesti hlavy, které se snažily dostat novější LFN a starší SFN, aby si navzájem dobře hráli. Pokud jste někdy narazili na starší disketu nebo CD-ROM s podivně zkrácenými soubory (podobně jako abcdef ~ 1.txt), tento název souboru byl odstraněn nějakou starší aplikací používající SFN z nějaké delší a nepodporované LFN (jako abcdefghijk. txt).
Máme však dlouhou cestu od poloviny devadesátých let a celá věc Long Filename je (z větší části) pevně vymačkaná. Pokud používáte verzi systému Windows za posledních 10 let, pravděpodobně se ani nepodaří narazit na konflikt délky názvu souboru, jako jsme se používali ke spuštění v DOS / Windows 95 dnech. To znamená, že se stále objevují škytavka, jak jste objevili s projektem vyčištění disku. Ale proč? Pokud systém souborů Windows Long Filename podporuje složky a názvy souborů až do 255 znaků na jednu komponentu, do jaké zdi jste narazili? Nemůžeme obviňovat systém souborů NTFS (souborový systém, který používá velká většina moderních počítačů Windows), protože systém souborů NTFS podporuje řetězování složek a názvů souborů až do celkové délky 32 767 znaků. To daleko přesahuje typickou strukturu adresářů, kterou by někdy někdo potřeboval.
Kde se všechno rozpadá, je to umělá restrikce Windows na horní straně systému LFN / NTFS: proměnná MAX_PATH. Proměnná MAX_PATH určuje, že úplná struktura adresářů v systému Windows nesmí překročit 260 celkových znaků, včetně písmena jednotky, dvojtečky, zpětného lomítka a nulové vůle na konci. Máte tedy potenciální skutečný MAX_PATH 256 znaků, např. C: your-256-character-path .
Takže co jste udělali při čištění počítače, s již dlouhou cestou (buď proto, že názvy složek byly dlouhé, názvy souborů byly dlouhé nebo oba) a když jste se pokoušeli přesunout jeden nebo více těchto adresářů do jiného adresáře s dlouhou cestou, celková délka cesty název překročil limit 260 znaků uložený proměnnou MAX_PATH.
Nyní můžete myslet "Ah-hah! Prostě změníme proměnnou MAX_PATH a vyřešíme problém! "Bohužel, není to tak jednoduché. Nejen, že proměnná MAX_PATH je v podstatě pevně zakódovaná do systému Windows, ale i když jste prošel obrovským potížím s její změnou, tak byste skončili tak, že byste to tak moc nestačili. Příliš mnoho aplikací očekává, že proměnná cesty je to, co již systém Windows již dlouho určil. Nemůžeme jen projít změnou, aniž bychom vytvořili obrovský nepořádek.
Kde tě to opustí? Nejjednodušším řešením je pouze upravit údaje o cestách. Například pokud máte tunu uložených článků, kde aplikace / rozšíření, které jste použili k jejich uložení z webu, vytvořili adresář, který byl úplným názvem článku + článku o původu, a pak samotný název souboru je úplný název článku + článku o vedení, bylo by snadné zasáhnout nebo překročit hodnotu MAX_PATH s jediným uložením. Editace těch obrovských názvů složek a článků až po rozumnější velikost je snadný způsob, jak problém vyřešit.
Pokud máte obrovský počet souborů s dlouhou cestou a nechcete je všechny upravovat (nebo pokud chcete odstranit tunu starých adresářů, které jsou pro Windows příliš dlouhé, když je omezena proměnnou MAX_PATH), je zde kolem příkazového řádku. I když je systém Windows omezen proměnnou MAX_PATH, inženýři systému Windows si uvědomili, že by existovaly situace, kdy by uživatelé museli vypořádat se s delšími názvy cest. Jako takový má rozhraní API systému Windows funkci pro práci s extrémně dlouhými cestami.
Chcete-li využít toto rozhraní API a používat nástroje příkazového řádku na vašich neprázdných složkách / názvech souborů, stačí připojit název adresáře několik dalších znaků. Například pokud byste měli obrovskou adresářovou strukturu, kterou jste chtěli smazat (ale při chybě dostali chybu vzhledem k délce cesty), můžete změnit příkaz z:
rmdir c: documents some-really -super-long-folder-name-scheme
do:
rmdir \? c: documents some-really-super-long-folder- přidání části
\? před začátkem cesty k souboru; to instruuje Windows, aby ignoroval omezení uložená proměnnou MAX_PATH a interakci s cestou, kterou jste právě dodali, dodanou / chápanou přímo systémem podkladových souborů (což může jasně podporovat delší cestu). Jako vždy buďte opatrní na příkazovém řádku, abyste se vyhnuli náhodnému smazání souborů nebo adresářů, které jste nechtěli nechat.
Pokud je váš přehled tohoto problému zvědavý, rozhodně se do tohoto článku zapojte z knihovny Microsoft Developer Network, Naming Files, Cesta a místa pro jména pro více informací o tom, co se děje pod kapucí.
Máte naléhavou technickou otázku? Napište nám e-mail na adresu a budeme se snažit, abychom odpověděli.
Jak se automaticky zapnout televizor, když se dostanete domů s Harmony Hubem
Lidé jsou zvykem a je pravděpodobné, že zapnete televizor téměř každý den po stejném čase dostanete se domů z práce a každou noc je vypnete téměř ve stejnou dobu, než půjdete do postele. Zde je návod, jak automatizovat tento proces pomocí Logitech Harmony Hub a online služby s názvem IFTTT. IFTTT používá akce nazvané "recepty", které spojují všechny druhy produktů a služeb dohromady, které byste normálně nebyli schopni připojit jinak, jako například mít každou novou fotku Facebook, na kterou jste označeni, automaticky nahraný do vašeho Dropboxu.
Proč jsou soubory PDF generované tak velkým formátem aplikace Microsoft Word?
Pokud jsou vaše dokumenty převážně pouze textově v přírodě, zdá se, že by velikost souborů pro verze .docx a .pdf měla být poměrně podobná, když se zachrání, ale to ne vždy platí. Dnešní příspěvek SuperUser Q & A má odpověď na otázky zvědavých čtenářů o velkém rozdílu ve velikosti souborů. Dnešní zasedání Otázky a odpovědi nám přichází s laskavým svolením SuperUser - podřízenou výměnou Stack Exchange, skupinou webových stránek s dotazem a odpovědí Otázka čtečka SuperUser Borek chce vědět, proč jsou soubory PDF generované aplikací Microsoft Word tak velké: Vytvořil jsem jednoduchý dokument aplikace Microsoft Word obsahující pouze tuto větu, nic jiného: Jedná se o malý dokument.