Errore mklink: impossibile creare un file quando quel file esiste già


27

Sto cercando di creare un collegamento simbolico sul mio computer win7 a 64 bit per reindirizzare i dati di backup di iTunes su un'altra unità. Sono abbastanza sicuro che la sintassi sia corretta ma non riesco a capire come cancellare questo errore. Ho provato entrambi i comandi di seguito che hanno lo stesso errore. Sto correndo nella finestra di comando dell'amministratore. Potrebbero esserci dei criteri di gruppo aziendale che mi impediscono di eseguire questo comando?

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

o

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

Errore

Impossibile creare un file quando quel file esiste già.


qual è la directory originale?
Akram Berkawy,

la directory originale è C: \ Users \ odellt1 \ AppData \ Roaming \ Apple Computer \ MobileSync \ Backup
ChiliYago

Esiste la cartella a cui ci si collega sull'unità E? Esiste una cartella con lo stesso nome del collegamento sull'unità C? L'unità E è formattata in NTFS?
Harry Johnston,

1
La sintassi è corretta, prima di eseguire questo comando, procedere come segue. Sposta tutti i contenuti della cartella di backup corrente di mobilesync su E: \ Apple Computer \ MobileSync \ Backup. Al termine, eliminare la sottocartella di backup vuota da "C: \ Users \ odellt1 \ AppData \ Roaming \ Apple Computer \ MobileSync". Una giunzione può essere creata solo se nella posizione non esiste una sottocartella con lo stesso nome.
Karanvir Kang,

Risposte:


29

la sintassi non è corretta. mklinkha la seguente sintassi:

mklink [options] <Link> <Target>

Targetè il file / cartella esistente ed Linkè quello creato che si collega alla destinazione.

quindi il comando dovrebbe essere:

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

vedi questo link per l'utilizzo di mklink.


Ho esaminato i documenti ed essendo così breve, penseresti che non sarebbe un problema correre. Comunque niente fortuna, anche invertendo il link / target come suggerisci i risultati nello stesso messaggio di errore.
ChiliYago,

1
quindi dovresti verificare che la cartella E: \ Apple Computer \ MobileSync \ Backup non esista
Akram Berkawy

1
Ha funzionato Ho notato che l'eliminazione del percorso completo ha provocato l'errore: "Il sistema non è in grado di trovare il percorso specificato". Quindi ho ripristinato il percorso ed eliminato solo l'ultima cartella nel percorso (Backup) e poi ha funzionato.
ChiliYago,

1
Questa non è la risposta corretta Questo crea un simlink, che non reindirizza iTunes su un'altra unità. Fa esattamente l'opposto: indirizza un'altra unità nella cartella di backup di iTunes.
Vaiden,

8

Il modo semplice è eliminare la cartella Backup nel backup della cartella Apple originale (in C: \ driver) Quando eseguiamo il comando:

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

Windows creerà un collegamento collegamento Backup in C: \ driver.


2
Questa è la risposta corretta che fa ciò che OP intendeva fare
Vaiden,

4

Ho avuto lo stesso problema con "l'errore file esiste già", fino a quando non ho usato "% AppData% ':

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

Junction creato per C: \ Users \ Me \ AppData \ Roaming \ Apple Computer \ MobileSync \ Backup << === >> E: \ iTune Backups

Nota: assicurarsi di utilizzare virgolette semplici, altrimenti si ottiene un errore del comando di sintassi.


Mi piace questo metodo semplice assicurandomi che le cartelle di origine e destinazione non siano presenti prima di creare il nodo. La creazione del nodo crea la cartella di origine, ma non la cartella di destinazione. Quindi ho dovuto creare manualmente la cartella di destinazione e quindi tutto funziona come previsto.
timoto,

Ciò ha risolto il problema per me, ma sarebbe bello avere una spiegazione del perché% AppData% lo risolve.
Aureis,

2

Volevo solo aggiungere che l'errore che hai citato nel tuo commento sopra System cannot find the path specifiedsembra accadere quando stai simbolicamente collegando a un sotto-livello di cartella che non esiste alla fonte originale del collegamento.

Significa che non puoi collegare

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

mirare

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

Non funzionerà se non almeno

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

esiste come parte della fonte del collegamento. Dovresti collegare entrambi

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

per

"g:\programs\some folder1" 

o dovresti creare almeno una cartella vuota in

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

e quindi creare il collegamento

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

per

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

Sembra un bug da parte di Microsoft, ma questa risposta è in realtà corretta. Quando si collega C:\fooa E:` for instance, E: \ foo` deve esistere per inserire cd C:\foo; tuttavia, quando fai cd, sei posto in E:` -- **not** E: \ foo`. Grazie per averlo sottolineato, non l'avrei mai capito.
Qix,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.