ข้อผิดพลาด mklink: ไม่สามารถสร้างไฟล์เมื่อไฟล์นั้นมีอยู่แล้ว


27

ฉันกำลังพยายามสร้างลิงก์สัญลักษณ์บนเครื่อง win7 64 บิตของฉันเพื่อเปลี่ยนเส้นทางข้อมูลสำรอง iTunes ไปยังไดรฟ์อื่น ฉันค่อนข้างมั่นใจว่าไวยากรณ์ถูกต้อง แต่ไม่เข้าใจวิธีการแก้ไขข้อผิดพลาดนี้ ฉันลองทั้งสองคำสั่งด้านล่างซึ่งมีข้อผิดพลาดเดียวกัน ฉันกำลังทำงานในหน้าต่างคำสั่งผู้ดูแลระบบ มีนโยบายกลุ่ม บริษัท บางอย่างที่ทำให้ฉันไม่สามารถเรียกใช้คำสั่งนี้ได้หรือไม่

mklink /D "C:\Users\odellt1\AppData\Roaming\Apple Computer\MobileSync\Backup" "E:\Apple Computer\MobileSync\Backup" 

หรือ

mklink /J "C:\Users\odellt1\AppData\Roaming\Apple Computer\MobileSync\Backup" "E:\Apple Computer\MobileSync\Backup"

ความผิดพลาด

ไม่สามารถสร้างไฟล์เมื่อไฟล์นั้นมีอยู่แล้ว


อันไหนเป็นไดเร็กตอรี่ต้นฉบับ?
Akram Berkawy

ไดเรกทอรีเดิมคือ C: \ Users \ odellt1 \ AppData \ Roaming \ Apple Computer \ MobileSync \ Backup
ChiliYago

มีโฟลเดอร์ที่คุณเชื่อมโยงไปยังไดรฟ์ E หรือไม่ มีโฟลเดอร์ชื่อเดียวกันกับลิงค์ในไดรฟ์ C หรือไม่ ไดรฟ์ E มีการจัดรูปแบบใน NTFS หรือไม่
Harry Johnston

1
ไวยากรณ์ถูกต้องก่อนรันคำสั่งนี้ทำตามขั้นตอนต่อไปนี้ ย้ายเนื้อหาทั้งหมดของโฟลเดอร์สำรอง mobilesync ปัจจุบันไปยัง E: \ Apple Computer \ MobileSync \ Backup เมื่อเสร็จแล้วให้ลบโฟลเดอร์ย่อยสำรองที่ว่างเปล่าออกจาก "C: \ Users \ odellt1 \ AppData \ Roaming \ Apple Computer \ MobileSync" สามารถสร้าง Junction ได้ต่อเมื่อโฟลเดอร์ย่อยที่มีชื่อเดียวกันนั้นไม่มีอยู่ที่ตำแหน่งนั้น
Karanvir Kang

คำตอบ:


29

ไวยากรณ์ไม่ถูกต้อง mklinkมี synatx ต่อไปนี้:

mklink [options] <Link> <Target>

Targetเป็นไฟล์ / โฟลเดอร์ที่มีอยู่และLinkเป็นไฟล์ที่สร้างขึ้นซึ่งเชื่อมโยงไปยังเป้าหมาย

ดังนั้นคำสั่งควรเป็น:

mklink /D "E:\Apple Computer\MobileSync\Backup"  "C:\Users\odellt1\AppData\Roaming\Apple Computer\MobileSync\Backup"

ดูลิงค์นี้สำหรับการใช้งาน mklink


ฉันได้อ่านเอกสารและสรุปแล้วคุณคงคิดว่ามันจะไม่มีปัญหาในการทำงาน อย่างไรก็ตามไม่มีโชคแม้กระทั่งการย้อนกลับลิงค์ / เป้าหมายเหมือนที่คุณแนะนำผลลัพธ์ในข้อความแสดงข้อผิดพลาดเดียวกัน
ChiliYago

1
จากนั้นคุณควรตรวจสอบว่าไม่มีโฟลเดอร์ E: \ Apple Computer \ MobileSync \ Backup อยู่
Akram Berkawy

1
ที่ได้ผล ฉันสังเกตว่าการลบพา ธ แบบเต็มทำให้เกิดข้อผิดพลาด: "ระบบไม่สามารถหาพา ธ ที่ระบุได้" ดังนั้นฉันจึงกู้คืนพา ธ และลบเฉพาะโฟลเดอร์สุดท้ายในพา ธ (สำรองข้อมูล) แล้วก็ใช้งานได้
ChiliYago

1
นี่ไม่ใช่คำตอบที่ถูกต้อง นี่เป็นการสร้าง simlink ซึ่งไม่ได้เปลี่ยนเส้นทาง iTunes ไปยังไดรฟ์อื่น มันตรงกันข้ามทั้งหมด - นำไดรฟ์อื่นไปยังโฟลเดอร์สำรอง iTunes
Vaiden

8

วิธีง่าย ๆ คือลบโฟลเดอร์สำรองในการสำรองข้อมูลโฟลเดอร์ Apple ดั้งเดิม (ในไดรเวอร์ C: \) เมื่อเราเรียกใช้คำสั่ง:

mklink /J "%APPDATA%\Apple Computer\MobileSync\Backup" "E:\iTune Backups"

windows จะสร้างลิงค์ทางลัด Backup ใน C: \ driver


2
นี่คือคำตอบที่ถูกต้องซึ่งทำในสิ่งที่ OP ต้องการทำ
Vaiden

4

ฉันมีปัญหาเดียวกันกับ "ไฟล์มีข้อผิดพลาด" จนกระทั่งฉันใช้ "% AppData% ':

mklink / J "% APPDATA% \ Apple คอมพิวเตอร์ \ MobileSync \ Backup" "E: \ iTune สำรอง"

สร้างทางแยกสำหรับ C: \ Users \ Me \ AppData \ Roaming \ Apple คอมพิวเตอร์ \ MobileSync \ Backup << === >> E: \ iTune สำรอง

หมายเหตุ: ตรวจสอบให้แน่ใจว่าคุณใช้เครื่องหมายคำพูดแบบตรงมิฉะนั้นคุณจะได้รับข้อผิดพลาดของคำสั่งไวยากรณ์


ฉันชอบวิธีการง่ายๆนี้เพื่อให้แน่ใจว่าไม่มีโฟลเดอร์ต้นทางและปลายทางก่อนสร้างทางแยก การสร้างทางแยกจะสร้างโฟลเดอร์ต้นทาง แต่ไม่ใช่โฟลเดอร์ปลายทาง ดังนั้นฉันต้องสร้างโฟลเดอร์เป้าหมายด้วยตนเองจากนั้นทั้งหมดก็ทำงานได้ตามที่คาด
timoto

สิ่งนี้แก้ไขได้สำหรับฉัน แต่น่ายินดีที่มีคำอธิบายว่าทำไม% AppData% จึงแก้ไขได้
Aureis

2

ฉันแค่อยากจะเพิ่มว่าข้อผิดพลาดที่คุณพูดถึงในความคิดเห็นของคุณด้านบนSystem cannot find the path specifiedดูเหมือนจะเกิดขึ้นเมื่อคุณกำลังเชื่อมโยงสัญลักษณ์ในระดับย่อยของโฟลเดอร์ซึ่งไม่มีอยู่ในแหล่งดั้งเดิมของลิงก์

หมายความว่าคุณไม่สามารถลิงก์ได้

"c:\program files (x86)\some folder1\some folder2\"

ไปยังเป้าหมาย

"d:\programs\some folder1\some folder2\"

มันจะไม่ทำงานเว้นแต่อย่างน้อย

"c:\program files (x86)\some folder1"

มีอยู่เป็นส่วนหนึ่งของแหล่งลิงก์ คุณจะต้องลิงค์

"c:\program files (x86)\some folder1"

ถึง

"g:\programs\some folder1" 

หรือคุณจะต้องสร้างโฟลเดอร์ว่างอย่างน้อยที่

"c:\program files (x86)\some folder1"

จากนั้นสร้างลิงก์

"c:\program files (x86)\some folder1\some folder2" 

ถึง

"g:\programs\some folder1\some folder2"

ดูเหมือนว่าข้อผิดพลาดในส่วนของ Microsoft แต่คำตอบนี้ถูกต้องจริง เมื่อคุณเชื่อมโยงC:\fooไปยังE:` for instance, E: \ foo` ต้องมีอยู่เพื่อให้ซีดีเข้าไปC:\foo; อย่างไรก็ตามเมื่อคุณทำ cd คุณจะถูกวางลงในE:` -- **not** E: \ foo` ขอบคุณที่ชี้ให้เห็นว่าฉันจะไม่คิดออก
Qix
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.