ชื่อไฟล์ยาวเกินไปและ Windows ไม่สามารถเปิดไฟล์ได้


12

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

TL; DR

ไฟล์จากเวิร์กสเตชันของใครบางคนบนเส้นทาง (สมมุติ) เช่นนี้:

C:\Documents and Settings\SomeUser\Files\RootOfLongFileNames\LongSubdirectoryName1\...\VeryLongAndDescriptiveAndSpecificFilename.xls
-----------------------------------------^

ได้รับการคัดลอกและวางในเครือข่ายเช่นนี้แล้ว:

Q:\Dir1\Dir2\ProjectA\FilesForSomething\SomeotherDirectory\Blahblah\RootOfLongFileNames\LongSubdirectoryName1\...\VeryLongAndDescriptiveAndSpecificFilename.xls
---------------------------------------------------------------------^

และพา ธ นั้นยาวเกินไปสำหรับ Windows XP ที่จะจัดการ

คำแนะนำใด ๆ เกี่ยวกับวิธีที่ฉันสามารถอ่านไฟล์เหล่านี้ได้?



@bZezzz: ดูเหมือนว่ามันจะทำงานบนพื้นฐานแบบไฟล์ต่อไฟล์ แต่ฉันกำลังมองหาบางสิ่งที่จะทำให้กลุ่มทั้งหมดของพวกเขาสามารถเข้าถึงได้ทั้งหมดในครั้งเดียว การคัดลอกไปยังเวิร์คสเตชั่นภายในเครื่องจะใช้ได้ แต่ชื่อไฟล์แบบยาวนั้นจะต้องได้รับการเก็บรักษาไว้ (จะมีบริบทที่เฉพาะเจาะจงมากสำหรับเนื้อหาไฟล์) นอกจากนี้ผู้ใช้งานจำนวนมากที่นี่ยังไม่ได้ใช้เทคนิคพอที่จะเริ่มเปิดไฟล์จากบรรทัดคำสั่ง คำแนะนำของคุณอาจใช้ได้กับฉันและอีกคนหนึ่ง
FrustratedWithFormsDesigner

คำตอบ:


7

ลองแทนเส้นทางด้วย SUBST.EXE มันมาพร้อมกับ Windows:

C:\Users\shufler>subst /?
Associates a path with a drive letter.

SUBST [drive1: [drive2:]path]
SUBST drive1: /D

  drive1:        Specifies a virtual drive to which you want to assign a path.
  [drive2:]path  Specifies a physical drive and path you want to assign to
                 a virtual drive.
  /D             Deletes a substituted (virtual) drive.

Type SUBST with no parameters to display a list of current virtual drives.

สิ่งที่คุณต้องการทำคือแทนที่หนึ่งในโฟลเดอร์ลงในเชนเพื่อใส่อักษรชื่อไดรฟ์:

 C:\>subst X: Q:\Dir1\Dir2\ProjectA\FilesForSomething\SomeotherDirectory\Blahblah\RootOfLongFileNames\LongSubdirectoryName1

ตอนนี้เข้าถึงโฟลเดอร์ LongSubdirectoryName1 บนไดรฟ์ X: แล้ว เมื่อเสร็จแล้วคุณสามารถลบการแทนที่ด้วยsubst X: /D

หากคุณต้องการสิ่งนี้ตลอดเวลาจากนั้นเพิ่มลงในสคริปต์การเข้าสู่ระบบของคุณ

อีกวิธีหนึ่งคือการแมปไดรฟ์ลงจากโซ่ทุกที่ที่มีการทำแผนที่ Q:


2
ฉันประสบปัญหานี้บ่อยครั้งมากและฉันใช้วิธี SUBST เพื่อจุดประสงค์นั้นฉันพบเครื่องมือ Visual Subst ที่ntwind.com/software/utilities/visual-subst.htmlเพื่อให้มีค่า
yosh m

6

คุณจะต้องเปลี่ยนชื่อไดเรกทอรีในเส้นทางจนกว่าชื่อจะสั้นพอที่ระบบปฏิบัติการจะเข้าถึง

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

เกี่ยวกับความจำเป็นในการรักษาโครงสร้าง:มีข้อ จำกัด ที่เราต้องทำงานภายในระบบปฏิบัติการและไม่ดีที่จะใช้งานนอกพารามิเตอร์เหล่านั้นเป็นประจำ โซลูชันด่วนใด ๆ ในตอนนี้จะเป็นเพียงแพตช์ที่จะต้องเรียกใช้อีกครั้งในอนาคต วิธีการแก้ปัญหาที่แท้จริงจะเกี่ยวข้องกับการจัดระเบียบโครงสร้างไดเรกทอรีใหม่เพื่อให้ปัญหาเกี่ยวกับเส้นทางของโฟลเดอร์ / ชื่อไฟล์ที่ยาวมาก ๆ นี้ไม่จำเป็นอีกต่อไป


256 ตัวอักษร
bZezzz

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

1

\\?\คำนำหน้าเส้นทางที่มี โปรดทราบว่าวิธีนี้ใช้ไม่ได้กับแอพทั้งหมด


0

แก้ไข:เดิมทีฉันแนะนำให้ใช้ robocopy แต่แน่นอนว่านี่คือ XP และไม่ได้ติดตั้งไว้ล่วงหน้า

ไม่มีทางที่คุณจะสามารถ 'ให้ทุกคนได้ตามที่พวกเขาต้องการ' หากไฟล์พา ธ ยาวเกินไปคุณจะไม่สามารถดำเนินการกับไฟล์ใด ๆ ได้ วิธีที่ฉันเห็นคุณมีตัวเลือกน้อย:

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

  2. รับ Linux LiveCD ใส่ลงในคอมพิวเตอร์และบูตจากซีดีนั้น ไปดูดิสก์ Windows ที่จะติดตั้งอัตโนมัติเป็นระบบไฟล์แยกต่างหาก รับไฟล์ทั้งหมดที่คุณต้องการและใส่ไว้ในโฟลเดอร์ใหม่บนเดสก์ท็อปของคุณ ซิปโฟลเดอร์นั้นและวางไว้ในฮาร์ดไดรฟ์ภายนอกหรือ USB stick หรือหากไดรฟ์เครือข่ายของคุณอนุญาตให้คัดลอกกลับไปยังระบบไฟล์ให้ย้ายไปยังไดเรกทอรีระดับบนสุด


ฉันไม่ได้ติดตั้ง robocopy และไม่แน่ใจว่าฉันสามารถติดตั้งได้ (เป็นคอมพิวเตอร์ที่ใช้งานได้) นอกจากนี้ฟังก์ชั่นนี้ดูเหมือนจะมีประโยชน์มากสำหรับแต่ละไฟล์ ตัวอย่างของฉันง่ายขึ้น: จริงๆแล้วมีหลายไดเรกทอรีในหลาย ๆ ระดับที่ลึกเกินไปแต่ละไฟล์ที่มีซึ่งตอนนี้ไม่สามารถเข้าถึงได้เนื่องจากปัญหาเกี่ยวกับเส้นทางที่ยาวเกินไป ฉันไม่ต้องเสียเวลาทำสิ่งนี้กับไฟล์ทั้งหมดที่ทุกคนต้องการ
FrustratedWithFormsDesigner
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.