Символическая ссылка Windows 7-не удается создать файл, если этот файл уже существует

Я пытаюсь создать символическую ссылку между двумя каталогами. У меня есть каталог под названием TestDocs и TestDocs2. Я буду делать всю свою работу в TestDocs, но мне нужно, чтобы все это было отражено в TestDocs2. Таким образом, все файлы, которые находятся в TestDocs2, будут реплицированы в TestDocs, и если я добавлю файл, изменю файл и т. д. В TestDocs, он должен быть отражен в TestDocs2.

поэтому я подумал, что это будет так же просто, как просто сделать это:

mklink /D TestDocs TestDocs2

но когда я это делаю, я получаю ошибка:

невозможно создать файл, если этот файл уже существует

почему я получаю это?

кроме того, у меня есть порядок моих TestDocs и TestDocs2 неправильно в команде?

Спасибо за помощь, символические ссылки всегда смущали меня!

3 ответов


правильное использование:

MKLINK [options] {link} {target}

вы создаете ссылку, поэтому link новая ссылка, которую вы планируете создать.
И target является целью ссылки, которая является существующим каталогом.


вот как это работает для меня. Я хотел переместить мой C:\ProgramData\Package Cache to F: раздел.

шаги, которые я должен был сделать:

  1. физически переместить "C:\ProgramData\Package Cache" до F:. Теперь у меня было!--6--> и "C:\ProgramData\Package Cache" ушел с тех пор, как я его переместил.

  2. в cmd run (все в одной строке, разделить здесь для удобства чтения)

    mklink /J "C:\ProgramData\Package Cache" 
              "F:\ProgramData\Package Cache"
    
  3. результат:

    Junction created for C:\ProgramData\Package Cache <<===>> 
                         F:\ProgramData\Package Cache`
    

Я сделал это для Google Picasa, чтобы я мог получить доступ к фотографиям на более чем одной машине. Он работает очень хорошо, поскольку Picasa на самом деле не является программой с поддержкой netowrk. Для меня я сделал следующее:

  • Установить Picasa
  • выполнить приложение. Это создаст все необходимые файлы базы данных.
  • закрыть приложение.
  • перейдите в каталог, где база данных - в Windows 7 она будет создана в c:\users\\AppData\Local\Google
  • будет две папки Picasa2 и Picasa2Albums Скопируйте эти папки в сетевое расположение. В моем случае я создал папку под названием o:\PicasaDatabase и скопировал в него эти папки.
  • далее переименуйте исходные папки в Picasa2.старый и Picasa2Albums.старый

выполните следующие команды из командной строки с повышенными правами cmd:

mklink / D "c:\Users\\AppData\Local\Google\Picasa2" "o:\PicasaDatabase\Picasa2"

mklink / D "c:\Users\\AppData\Local\Google\Picasa2Albums ""o:\PicasaDatabase\Picasa2Albums"

в исходном расположении будут созданы две символические ссылки, которые будут указывать на сетевой диск.

очевидно, что использование символических ссылок, как это обходной путь для приложения, которые не являются сетевыми и только один пользователь может получить доступ к базе данных сразу.