Wspomnę tylko o sztuczce, której jeszcze nie widzę.
Weźmy na przykład ten plik:
C:\Folder1\Really Long Path\Such Recursion\So Deep\Wow\Still Going\I will run out of ideas soon\I have organizational problems\Obsessive compulsive subdirectory disorder\Here is a guid for no good reason\936DA01F-9ABD-4d9d-80C7-02AF85C822A8\Almost there\Tax Returns\2013\2013_tax_return.pdf
Ta pełna ścieżka do pliku ma 290 znaków. Powłoka (Eksplorator Windows) i większość narzędzi wiersza poleceń prawdopodobnie nie pozwoli ci go dotknąć.
Użyj subst
polecenia w następujący sposób:
subst X: "C:\Folder1\Really Long Path\Such Recursion\So Deep\Wow"
Teraz możesz uzyskać dostęp do (i usunąć, przenieść itp.) Pliku w ten sposób:
X:\Still Going\I will run out of ideas soon\I have organizational problems\Obsessive compulsive subdirectory disorder\Here is a guid for no good reason\936DA01F-9ABD-4d9d-80C7-02AF85C822A8\Almost there\Tax Returns\2013\2013_tax_return.pdf
A teraz ta nazwa pliku ma tylko ~ 235 znaków, więc nie będziesz już mieć problemów z „Nazwa pliku jest za długa”.
W Windows API istnieje niesławna stała znana jako MAX_PATH
. MAX_PATH ma 260 znaków. System plików NTFS obsługuje ścieżki do 32 767 znaków. Nadal możesz używać 32 767 długich nazw ścieżek, uzyskując dostęp do wersji funkcji Windows API Unicode (lub „szerokich”), a także przez prefiks ścieżki \\?\
.
MAX_PATH
został osadzony w kamieniu bardzo dawno temu w świecie Windows. Myślę, że ma to coś wspólnego ze standardami ANSI w tamtym czasie ... ale to jedna z tych rzeczy, które Microsoft bardzo trudno zmienić teraz, ponieważ teraz mamy tysiące programów i aplikacji, w tym niektóre napisane przez samych Microsoft, które używają MAX_PATH
i zawiódłby w dziwny, nowy sposób, gdyby stała została nagle zmieniona. (Przepełnienia bufora, uszkodzenie sterty itp.)