Solutii pentru depasirea limitarii cailor lungi in Windows Fileserver

Configurare noua (How To)

Situatie

Sistemele Windows gestionează căile lungi în mod fundamental diferit înainte și după anul 2016. Există o limită istorică de 260 de caractere (nu 259) pentru lungimea căilor de fișiere în Windows, cunoscută sub numele de MAX_PATH. Aceasta include litera unității (ex: C:\), urmată de foldere, numele fișierului și caracterul invizibil de terminare (null).

Restricția provine din standardele vechi de programare (API-ul Win32). Deși sistemul de fișiere NTFS poate suporta teoretic căi de până la 32.767 de caractere, multe aplicații Windows sunt construite folosind biblioteca standard care limitează orice cale la 260 de caractere pentru a asigura compatibilitatea cu software-ul mai vechi.

Solutie

Pasi de urmat

Începând cu Windows 10 (versiunea 1607), Microsoft a introdus o opțiune de a activa “Long Paths” (Căi Lungi). Aceasta nu este activată implicit.

Clasificarea Generațiilor de Server Windows

Sistemele Windows gestionează căile lungi în mod fundamental diferit înainte și după anul 2016.

Categorie Versiuni Server Capacitate Nativă Soluție Principală
Generația Nouă 2016, 2019, 2022, 2025 Suportă activarea LongPathsEnabled Politică de Grup (GPO) sau Registry
Generația Legacy 2008, 2008 R2, 2012, 2012 R2 Limită hardcoded în API-ul Win32 Prefixul \\?\ sau scurtarea căii (subst)

Soluția pentru Generația Nouă (Post-2016 / 2019 / 2022)

Pe aceste sisteme, nucleul Windows înțelege căile lungi, dar trebuie să îi dai permisiunea să le folosească.

Procedura Tehnică:

  1. GPO: Computer Configuration > Administrative Templates > System > Filesystem > Enable Win32 long paths.

  2. Registry: HKLM\SYSTEM\CurrentControlSet\Control\FileSystem\LongPathsEnabled setat pe 1.

De ce este important: Această setare permite aplicațiilor moderne (care au un “manifest” compatibil) să acceseze fișiere peste 260 caractere fără a modifica codul aplicației.

Soluția pentru Generația Legacy (Pre-2016 / 2012 / 2008)

Pe Server 2012 sau 2008, nu există un comutator “On/Off” pentru această limită. Ea este impusă de modul în care sistemul de operare comunică cu fișierele prin API-ul standard.

Strategii de remediere (Workarounds):

  • Utilizarea Namespace-ului Unicode: În loc de C:\Date\Fisier.txt, se utilizează prefixul \\?\C:\Date\Fisier.txt. Acesta instruiește Windows să trimită calea direct către driverul NTFS, sărind peste bariera de 260 de caractere a Win32.

  • Maparea “Subst”: Dacă ai o cale de 300 de caractere, mapezi un subfolder ca unitate virtuală.

    • subst L: "C:\Folder_Foarte_Lung\Subfolder_Adanc"

    • Acum accesezi fișierele prin L:\, “păcălind” limita de caractere.

  • Utilizarea Robocopy: Este singurul utilitar nativ pe serverele vechi care știe să folosească automat prefixul Unicode pentru a copia fișiere pe care Windows Explorer nu le poate atinge.

Dacă implementezi această soluție, iată ce trebuie să certifici pentru a asigura funcționarea:

  1. Serverul: Este configurat (dacă este post-2016)

  2. Aplicația: Dacă este o aplicație veche (legacy), aceasta poate eșua chiar și pe Server 2022 dacă nu a fost actualizată să recunoască setarea de Long Path

  3. Clientul (SMB): Dacă serverul este 2019, dar utilizatorul accesează fișierele de pe un Windows 7 prin rețea, utilizatorul va avea în continuare eroarea de limită.

Tip solutie

Permanent

Voteaza

(17 din 32 persoane apreciaza acest articol)

Despre Autor

Leave A Comment?