ทางเลือกใน Windows Explorer สำหรับชื่อพา ธ แบบยาว


24

ปรับปรุง:

  1. ฉันพบว่าไม่เพียง แต่ Windows Explorer แต่ยังมีซอฟต์แวร์อื่น ๆ ที่ทนทุกข์ทรมานจากชื่อเส้นทางที่ยาวเกินไป ตัวอย่างเช่นใน Firefox เมื่อฉันบันทึกเว็บเพจลงในไดเรกทอรีฉันยังคงไม่สามารถทำได้หากชื่อหรือชื่อเส้นทางยาวเกินไป Firefox ใช้ Windows Explorer หรือไม่ ฉันจะแก้ไขปัญหานั้นได้อย่างไร?

  2. ฉันลองใช้ซอฟต์แวร์ที่แนะนำในการตอบกลับทั้งสองครั้ง ไม่มีใครสามารถเข้าถึงทางยาว ปัญหา Long path อยู่ที่ Windows OS หรือไม่ ถ้าใช่มันหมายความว่าไม่มีทางที่จะไปรอบ ๆ มันได้หรือไม่?

Original:ฉันมีสอง OS ติดตั้งไว้ในแล็ปท็อปของฉัน: Windows 7 และ Ubuntu 10.10 พวกเขาแบ่งปันพาร์ติชัน

ใน Ubuntu โดยใช้ Nautilus ฉันสามารถสร้างไดเรกทอรีที่อยู่ลึกมากในลำดับชั้นของพา ธ บนพาร์ติชันที่ใช้ร่วมกัน แต่เมื่อเปลี่ยนเป็น Windows Windows Explorer จะไม่อนุญาตให้เข้าถึงไดเรกทอรีที่อยู่ลึกเกินไปเช่นมีชื่อพา ธ ยาวเกินไป

Windows Explorer ก็ดูเหมือนจะไม่สามารถเข้าถึงไฟล์และ Directorates ที่สร้างขึ้นภายใต้ Ubuntu ด้วยตัวอักษรพิเศษในไดเรกทอรีและชื่อไฟล์

ฉันสงสัยว่าจะสามารถแก้ไขปัญหาใน Windows ได้อย่างไร ตัวอย่างเช่นมีซอฟต์แวร์ทางเลือกอื่น ๆ เพื่อแทนที่ Windows Explorer หรือไม่


1
คุณใช้ระบบไฟล์ใดสำหรับพาร์ติชันที่ใช้ร่วมกัน (FAT32, NTFS)
James P

1
@James: ntfs ...
ทิม

ฉันจะถามว่าทำไมคุณต้องการความยาวของเส้นทางหรือความลึก การแก้ไขสิ่งที่นำไปสู่การที่คุณมีขีด จำกัด 259 นั้นน่าจะง่ายกว่าการทำให้ Windows ทำงานได้
cjb110

คำตอบ:


29

ในขณะที่ NTFS ช่วยให้เส้นทางบางยาว 32,000 ตัวอักษรคุณได้พบ259 ตัวอักษรข้อ จำกัด ระยะเวลาในเส้นทางของ Win32 API

ใน Windows API (มีข้อยกเว้นบางอย่างที่กล่าวถึงใน [เอกสารที่เชื่อมโยง]) ความยาวสูงสุดสำหรับพา ธ คือMAX_PATHซึ่งถูกกำหนดเป็น 260 อักขระ

(นอกจากนี้ยังมีNULLอักขระการเลิกต่อท้ายเส้นทางเพื่อให้เราใช้งานได้ 259 อักขระ)

เพราะ Explorer (และเกือบทุกปพลิเคชันอื่น ๆ ของ Windows) พึ่งพา API Win32 สำหรับการเข้าถึงระบบไฟล์ก็ไม่ได้ในทางปฏิบัติจะได้รับรอบข้อ จำกัด นี้ถึงแม้ว่ามันจะเป็นไปได้ :

Windows API มีฟังก์ชั่นมากมายที่มีรุ่น Unicode เพื่ออนุญาตให้ใช้พา ธ ที่มีความยาวแบบขยายสำหรับความยาวพา ธ รวมสูงสุดที่ 32,767 ตัวอักษร พา ธ ประเภทนี้ประกอบด้วยส่วนประกอบที่คั่นด้วยแบ็กสแลชแต่ละค่าจนถึงค่าที่ส่งคืนในlpMaximumComponentLengthพารามิเตอร์ของGetVolumeInformationฟังก์ชัน (ค่านี้โดยทั่วไปคือ 255 อักขระ) หากต้องการระบุพา ธ ที่มีความยาวเพิ่มให้ใช้ส่วนนำหน้า "\\? \" ตัวอย่างเช่น "\\? \ D: \ เส้นทางที่ยาวมาก "

น่าเสียดายที่คุณไม่สามารถพิมพ์ลง\\?\D:\very long pathในหน้าต่าง Explorer ได้ แอปพลิเคชันต้องได้รับการออกแบบมาเพื่อใช้ประโยชน์จาก API เหล่านี้และจัดการชื่อเส้นทางที่ยาวมาก

วิธีหนึ่งในการเข้าถึงพา ธ ที่มีความยาวเพิ่มภายใต้ Windows คือการติดตั้งCygwinซึ่งเป็นเลเยอร์ emulation * nix สำหรับ Windows ในการทดสอบของฉัน Cygwin ไม่ได้ถูก จำกัด โดยMAX_PATH; ทุบตีและ vi ไม่มีปัญหากับเส้นทางยาว 2,000 ตัวอักษร

โปรดทราบว่าแม้ว่าคุณสามารถใช้ทุบตีเพื่อเรียกดูเส้นทางที่มีความยาวเพิ่มคุณอาจจะไม่สามารถเปิดไฟล์ในเส้นทางเหล่านั้นในแอปพลิเคชัน Windows ปกติ ตัวอย่างเช่นการพิมพ์notepadในขณะที่ไดเรกทอรีทำงานเป็นเส้นทางที่มีความยาวเพิ่มเติมทำให้คุณได้รับ

ข้อผิดพลาด: ไดเรกทอรีการทำงานปัจจุบันมีเส้นทางยาวเกินกว่าที่อนุญาตสำหรับไดเรกทอรีการทำงาน Win32 ไม่สามารถเริ่มแอปพลิเคชัน Windows ดั้งเดิมจากที่นี่

และความพยายามnotepad "\\?\D:\very long path\file.txt"ก็ไม่ได้ผลเช่นกัน มันเปิดตัว แต่เพียงแค่บอกว่า "ไม่สามารถหาไฟล์ ... " การพยายามทำเช่นเดียวกันกับNotepad ++จะขัดข้อง (อาจเป็นบัฟเฟอร์มากเกินไป)

ตัวเลือกอื่น ๆ ของคุณในการเข้าถึงไฟล์เฉพาะฝังลึกลงไปในเส้นทางที่ขยายความยาวคือการลดระยะเส้นทางของตัวเองโดยการสร้าง NTFS จุดเชื่อมต่อ จากพรอมต์คำสั่งที่ยกระดับ:

D:\> mklink /J jct "\\?\D:\very\long\path"

ตอนนี้คุณสามารถเข้าถึงเนื้อหาของจากD:\very\long\path\ D:\jct\คุณจะไม่ประสบปัญหาความยาวเส้นทางเนื่องจากตราบใดที่ Explorer และแอปอื่น ๆ เกี่ยวข้องเส้นทางนั้นเป็นเพียงแค่D:\jct\(หรืออะไรก็ตาม) โปรแกรมควบคุม NTFS จัดการการเปลี่ยนเส้นทางเส้นทาง ("จุดแยกวิเคราะห์ใหม่") อย่างโปร่งใส

ข้อเสียของวิธีนี้คือคุณต้องสร้างทางแยกใกล้กับไฟล์ที่คุณต้องการเข้าถึง คุณยังไม่สามารถเรียกดูโครงสร้างไดเรกทอรีทั้งหมดได้อย่างง่ายดาย

เกี่ยวกับอักขระพิเศษ ( " * : < > ? \ |) นั่นเป็นเพียงการไม่ไป ตัวละครเหล่านั้นมีความหมายพิเศษใน Windows ดังนั้นจึงไม่สามารถใช้งานได้ในเส้นทาง (Cygwin ช่วยให้คุณสามารถสร้างไฟล์ที่มีอักขระพิเศษ แต่ทำได้โดยการแทนที่อักขระด้วยอักขระ Unicode พิเศษซึ่งจะทดแทนเมื่ออ่านการดูไฟล์ Cygwin ที่สร้างขึ้นเหล่านี้ภายใต้ Linux หรือใน Explorer จะดูไม่ถูกต้องเนื่องจาก อักขระ Unicode จะไม่ถูกแทนที่กลับ)


จากทั้งหมดที่กล่าวมาคุณกำลังทำอะไรที่ต้องใช้เส้นทางที่ยาวมาก? บางทีคุณอาจทำให้ชีวิตของคุณง่ายขึ้นโดยการประเมินสิ่งที่คุณทำและหลีกเลี่ยงเส้นทางที่ยาว โอกาสที่คุณไม่จำเป็นต้องมีเส้นทางที่ยาวอยู่แล้ว


ดูเหมือนว่าคำตอบนี้บอกว่า "ไม่มีซอฟต์แวร์ที่ทำสิ่งที่คุณกำลังมองหา" แต่ไม่ได้อธิบายอย่างชัดเจน
Aaron

5

หากคุณชอบแอปพลิเคชันโหมดข้อความดังนั้น FAR Manager อาจเป็นที่สนใจของคุณเนื่องจากฉันพบว่าสามารถรองรับโครงสร้างไดเรคทอรีที่ลึกกว่า Windows Explorer ได้

นี่เป็นแอปพลิเคชั่น Windows แบบ 32 บิต / 64 บิตที่เหมือน Norton Commander (ตั้งแต่สมัยที่ DOS เป็นผู้ปกครองสูงสุดของระบบปฏิบัติการบนพีซี) เชี่ยวชาญใน Directory (aka "Folder") และการจัดการไฟล์

ฉันเคยเห็นรายงานว่ามันถูกใช้แทน Windows Explorer แต่ฉันไม่ได้ลองสิ่งนี้เพราะฉันค่อนข้างพอใจกับมันในบริบทของการใช้มันเป็นแอพพลิเคชั่น ภาพหน้าจอที่ฉันรวมด้านล่างมีคุณสมบัติ "ทรีไดเรกทอรี" ที่ด้านขวาซึ่งเปิดใช้งานโดยการกด F9 (แถบเมนู) จากนั้น "R" (เมนูแผงด้านขวา) ตามด้วย "T" (โหมดแผงแผงควบคุม) ซึ่งอาจเป็นที่สนใจของคุณโดยเฉพาะ ...

  FAR Manager (ฟรีและโอเพ่นซอร์ส)
  http://www.farmanager.com/

ป้อนคำอธิบายรูปภาพที่นี่


ขอบคุณ! (1) ฉันลอง FAR มาก่อน มีสองคำถาม ฉันรู้สึกถึงความมืดที่ทำให้ดวงตาของฉันเปลี่ยนไป ฉันยังสงสัยว่าจะเลือกแอปพลิเคชั่นอย่างไรเพื่อเปิดไฟล์ที่ไม่สามารถจดจำได้หรือเปิดในแอพพลิเคชั่นที่แตกต่างกัน (2) ฉันพบว่าไม่เพียง แต่ Windows Explorer แต่ยังมีซอฟต์แวร์อื่น ๆ ที่มีชื่อพา ธ ยาวเกินไป ตัวอย่างเช่นใน Firefox ฉันต้องการบันทึกเว็บเพจไว้ในไดเรกทอรีฉันยังคงไม่สามารถเปิดไดเรกทอรีได้หากชื่อหรือชื่อเส้นทางยาวเกินไป Firefox ใช้ Windows Explorer หรือไม่ ฉันจะแก้ไขปัญหานั้นได้อย่างไร?
ทิม

ใช่สีสามารถเปลี่ยนแปลงได้: F9 (แถบเมนู), "O" (เมนูตัวเลือก), "L" (สี)
Randolf Richardson

ฉันไม่เข้าใจคำถามที่สองเกี่ยวกับ "... วิธีเลือกแอปพลิเคชันเพื่อเปิดไฟล์ ... " แต่ถ้าคุณกด Shift-Enter บนไฟล์มันจะขึ้นอยู่กับการเชื่อมโยงของ Windows เพื่อเปิดไฟล์ (แทน พยายามค้นหาคุณลักษณะในตัวหรือปลั๊กอินตัวจัดการ FAR เพื่อจัดการ)
Randolf Richardson

สำหรับคำถามสุดท้ายของคุณฉันสังเกตว่า FAR Manager ดูเหมือนว่าจะสามารถจัดการเส้นทางที่ยาวกว่าเล็กน้อยได้ในบางครั้ง ฉันไม่แน่ใจว่าทำไมถึงเป็นเช่นนี้ แต่ฉันสงสัยว่าปัญหาที่คุณพบอาจเป็นข้อ จำกัด ของระบบปฏิบัติการ Windows เอง
Randolf Richardson

1
ใช้ Shift-Enter ซึ่งจะทำให้ Windows พยายามเปิด เนื่องจากมันจะไม่ถูกจดจำคุณจะถูกนำเสนอพร้อมท์ตามปกติเพื่อเลือกแอปพลิเคชัน
Randolf Richardson

4

มีทางเลือกบางอย่าง แต่ฉันไม่ได้ตรวจสอบความลึกของไดเรกทอรี

ฉันลองExplorer ++ , opensource และ portable

ภาพหน้าจอ Explorer ++

และใช้ Curvely ลูกบาศก์ต่อไปนี้เป็น opensource:

สกรีนช็อต Cubicexplorer


ขอบคุณ! ฉันพบว่าไม่เพียง แต่ Windows Explorer แต่ยังมีซอฟต์แวร์อื่น ๆ ที่ทนทุกข์ทรมานจากชื่อเส้นทางที่ยาวเกินไป ตัวอย่างเช่นใน Firefox ฉันต้องการบันทึกเว็บเพจไว้ในไดเรกทอรีฉันยังคงไม่สามารถเปิดไดเรกทอรีได้หากชื่อหรือชื่อเส้นทางยาวเกินไป . Firefox ใช้ Windows Explorer หรือไม่ ฉันจะแก้ไขปัญหานั้นได้อย่างไร?
ทิม

1
@Tim: คุณอาจพบข้อ จำกัด ที่กำหนดโดยการออกแบบ Windows เอง ฉันยังสังเกตเห็นว่า DOS พรอมต์มีปัญหากับเส้นทางที่ยาวมาก ๆ ถึงแม้ว่าฉันจะลึกขึ้นเล็กน้อยโดยใช้ชื่อพา ธ "8.3 สไตล์" ที่น่าเกลียด (เช่น "C: / PROGRA ~ 2 / SPYBOT ~ 1 /") . อย่างไรก็ตามคุณสมบัติที่ดีอย่างหนึ่งก็คือการผสมชื่อพา ธ ที่สั้นกว่า 8.3 กับชื่อที่ยาวกว่านั้นใช้งานได้ดีในแอพพลิเคชั่นส่วนใหญ่
Randolf Richardson

@ Randolf: ขอบคุณ! ฉันได้ลองใช้ซอฟต์แวร์ที่แนะนำในโพสต์ของคุณและ Juhele แล้ว Execept FAR ไม่ใช่ของพวกเขาสามารถเข้าถึงเส้นทางยาวในขณะที่ไกลสามารถเปิดไดเรกทอรีดังกล่าวก็ไม่สามารถเปิดไฟล์ภายใต้มัน ปัญหา Long path อยู่ที่ Windows OS หรือไม่ ถ้าใช่มันหมายความว่าไม่มีทางที่จะไปรอบ ๆ มันได้หรือไม่?
ทิม

@Tim: ฉันเชื่อว่าคุณได้ยืนยันปัญหากับข้อ จำกัด ภายใน Windows เอง คุณสามารถใช้ FAR Manage เพื่อดูไฟล์ (ปุ่ม F3 หลังจากไฮไลต์ไฟล์) ได้หรือไม่? แล้วการใช้ Enter (โดยไม่ใช้ Shift) ล่ะ? (หากคุณสามารถดูได้คุณสามารถคัดลอกไปยังตำแหน่งอื่นที่ Windows สามารถใช้ประโยชน์ได้ - แม้ว่านี่จะน่าเบื่อ แต่อย่างน้อยก็ทำให้สามารถเข้าถึงไฟล์ได้)
Randolf Richardson

4
ฉันลองใช้ Explorer ++ และ Cubic Explorer แล้ว แต่ทั้งคู่ดูเหมือนจะไม่สนับสนุนชื่อเส้นทางที่ยาว
xaedes

1

ฉันลองตัวจัดการไฟล์ 7-Zipและดูเหมือนว่าจะทำงานได้ดีกับเส้นทางที่ยาว


ยอดเยี่ยม! อัญมณีที่ซ่อนอยู่ที่ฉันมีในคอมพิวเตอร์และไม่คิดว่าจะลอง โบนัส: ฉันมีเส้นทางยาวบนเครือข่ายที่ใช้ร่วมกัน - และฉันสังเกตเห็นว่าประสิทธิภาพของ 7 Zip File Manager นั้นเร็วมากเทียบกับประสิทธิภาพการทำงานช้าใน Windows Explorer
Omaer

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.