mklink error: Tidak dapat membuat file saat file itu sudah ada


27

Saya mencoba membuat tautan simbolis pada mesin win7 64bit saya untuk mengarahkan ulang data cadangan iTunes ke drive lain. Saya cukup yakin sintaksnya benar tetapi tidak dapat memahami cara menghapus kesalahan ini. Saya telah mencoba kedua perintah di bawah ini yang memiliki kesalahan yang sama. Saya menjalankan di Administrator Command Window. Mungkinkah ada kebijakan grup perusahaan yang mencegah saya menjalankan perintah ini?

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

atau

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

Kesalahan

Tidak dapat membuat file ketika file itu sudah ada.


direktori mana yang asli?
Akram Berkawy

direktori aslinya adalah C: \ Users \ odellt1 \ AppData \ Roaming \ Apple Computer \ MobileSync \ Backup
ChiliYago

Apakah folder yang Anda tautkan pada drive E ada? Apakah folder dengan nama yang sama dengan tautan ada di drive C? Apakah drive E diformat dalam NTFS?
Harry Johnston

1
Sintaksnya benar, sebelum menjalankan perintah ini, lakukan langkah-langkah berikut. Pindahkan semua konten folder cadangan mobilesync saat ini ke E: \ Apple Computer \ MobileSync \ Backup. Setelah selesai, hapus subfolder cadangan kosong dari "C: \ Users \ odellt1 \ AppData \ Roaming \ Apple Computer \ MobileSync". Persimpangan hanya dapat dibuat jika subfolder dengan nama yang sama tidak ada di lokasi.
Karanvir Kang

Jawaban:


29

sintaksnya salah. mklinkmemiliki synatx berikut:

mklink [options] <Link> <Target>

Targetadalah file / folder yang ada, dan Linkmerupakan file yang dibuat yang terhubung ke target.

jadi perintahnya harus:

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

lihat tautan ini untuk penggunaan mklink.


Saya telah membaca dokumen dan begitu singkat sehingga Anda akan berpikir tidak akan ada masalah untuk dijalankan. Namun tidak berhasil, bahkan membalikkan tautan / target seperti Anda menyarankan hasil dalam pesan kesalahan yang sama.
ChiliYago

1
maka Anda harus memeriksa bahwa E: \ Apple Computer \ MobileSync \ Folder cadangan tidak ada
Akram Berkawy

1
Itu berhasil. Saya perhatikan bahwa menghapus path lengkap menghasilkan kesalahan: "Sistem tidak dapat menemukan path yang ditentukan." Jadi saya memulihkan path dan hanya menghapus folder terakhir di path (Backup) dan kemudian berhasil.
ChiliYago

1
Ini bukan jawaban yang benar. Ini menciptakan simlink, yang tidak mengarahkan iTunes ke drive lain. Ini melakukan kebalikannya - mengarahkan drive lain ke folder cadangan iTunes.
Vaiden

8

Cara sederhananya adalah menghapus folder Cadangan dalam cadangan folder apple Asli (dalam C: \ driver) Ketika kita menjalankan perintah:

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

Windows akan membuat pintasan tautan Cadangan di C: \ driver.


2
Ini adalah jawaban yang benar yang melakukan apa yang ingin OP lakukan
Vaiden

4

Saya memiliki masalah yang sama dengan "file sudah ada kesalahan", sampai saya menggunakan "% AppData% ':

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

Persimpangan dibuat untuk C: \ Users \ Me \ AppData \ Roaming \ Apple Computer \ MobileSync \ Backup << === >> E: \ iTune Backups

Catatan: Pastikan Anda menggunakan kutipan langsung, jika tidak, Anda akan mendapatkan kesalahan perintah sintaksis.


Saya suka metode sederhana ini memastikan folder sumber dan target tidak ada sebelum membuat persimpangan. Membuat persimpangan membuat folder sumber, tetapi bukan folder target. Jadi saya harus secara manual membuat folder target dan kemudian semua berfungsi seperti yang diharapkan.
timoto

Ini memperbaikinya untuk saya tetapi akan menyenangkan untuk memiliki penjelasan mengapa% AppData% memperbaikinya.
Aureis

2

Saya hanya ingin menambahkan bahwa kesalahan yang Anda sebutkan di komentar Anda di atas System cannot find the path specifiedtampaknya terjadi ketika Anda secara simbolis menautkan pada sub-level folder yang tidak ada di sumber asli tautan tersebut.

Berarti Anda tidak dapat menautkan

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

untuk menargetkan

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

Ini tidak akan berfungsi kecuali setidaknya

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

ada sebagai bagian dari sumber tautan. Anda harus menautkan keduanya

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

untuk

"g:\programs\some folder1" 

atau Anda harus membuat setidaknya folder kosong di

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

lalu buat tautannya

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

untuk

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

Sepertinya ini adalah bug di pihak Microsoft, tetapi jawaban ini sebenarnya benar. Ketika Anda menautkan C:\fooke E:` for instance, E: \ foo` harus ada untuk di-cd ke C:\foo; namun, ketika Anda melakukan cd, Anda ditempatkan di E:` -- **not** E: \ foo`. Terima kasih telah menunjukkan ini, saya tidak akan pernah menemukan jawabannya.
Qix
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.