เพียงแค่พูดถึงเคล็ดลับฉันไม่เห็นพูดถึงที่นี่เลย
ยกตัวอย่างไฟล์นี้:
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
พา ธ ไฟล์แบบเต็มนี้มีความยาว 290 ตัวอักษร เชลล์ (Windows Explorer) และยูทิลิตี้บรรทัดคำสั่งส่วนใหญ่อาจไม่ยอมให้คุณแตะมัน
ใช้subst
คำสั่งดังนี้:
subst X: "C:\Folder1\Really Long Path\Such Recursion\So Deep\Wow"
ตอนนี้คุณสามารถเข้าถึง (และลบย้าย ฯลฯ ) ไฟล์ได้ดังนี้:
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
และในตอนนี้ชื่อไฟล์มีเพียง ~ 235 ตัวอักษรดังนั้นคุณจะไม่พบปัญหา "ชื่อไฟล์ยาวเกินไป" อีกต่อไป
ในการ Windows API MAX_PATH
มีความคงที่ที่น่าอับอายที่รู้จักในฐานะ MAX_PATH คือ 260 ตัวอักษร ระบบไฟล์ NTFS รองรับพา ธ ไฟล์ได้สูงสุด 32,767 ตัวอักษร และคุณยังสามารถใช้ 32,767 ตัวอักษรชื่อเส้นทางยาวโดยการเข้าถึง Unicode (หรือ "กว้าง") รุ่นของฟังก์ชัน Windows API และยังโดย prefixing \\?\
เส้นทางที่มี
MAX_PATH
ถูกตั้งค่าในหินนานมากแล้วในโลก Windows ฉันคิดว่ามันมีบางอย่างที่เกี่ยวข้องกับมาตรฐาน ANSI ในเวลานั้น ... แต่มันเป็นหนึ่งในสิ่งที่ยากมากสำหรับ Microsoft ที่จะเปลี่ยนตอนนี้เนื่องจากขณะนี้เรามีโปรแกรมและแอปพลิเคชั่นนับพันรายการรวมทั้งที่ Microsoft เขียนเองด้วยMAX_PATH
และจะล้มเหลวในรูปแบบใหม่ที่แปลกถ้าค่าคงที่เปลี่ยนไปทันที (บัฟเฟอร์ล้น, กองการทุจริต ฯลฯ )