У меня есть внешний интерфейс Windows VB для команды Robocopy. Вот строка кода, который передает параметры Robocopy:Остановить блокировку файлов Robocopy при копировании
.StartInfo.Arguments = """" & txtCopyFrom.Text & """ """ & txtCopyTo.Text & _
""" /E /B /XJ /XF ""~*.*"" ""*~.*"" ""desktop.ini"" ""Thumbs.db"" "".lock"" "".Sync*""" & _
" /xd ""Rubbish"" "".Sync*"" "".Box Sync"" ""_private"" ""Outlook Files"" /FFT /R:2 /W:5 /V /TEE"
Это все работает отлично, за исключением, когда пользователь хочет изменить файл, который находится в середине копирования. Пользователь получает ошибку от своей программы, а затем должен ждать несколько минут, пока файл копируется (размер файла может быть до 1 ГБ, и он копируется на USB-накопитель.
Есть ли переключатель или какой-то способ чтобы Robocopy не блокировал файл во время его копирования? Очевидно, Robocopy должен был бы прервать копию и ждать, пока файл будет доступен, чтобы он мог попробовать снова. Я искал в Интернете решение, но все проблемы, похоже, наоборот, где Robocopy не копирование заблокированных файлов
Некоторые подробности относительно того, что я делаю:.
Мой код вызывает Robocopy каждые 30 секунд с выше флагов (я знаю Робокоп y может зацикливаться сам по себе, но это не совсем то, что я хотел). Я предполагал, что мое приложение запускается только в начале дня, а затем выключается в конце дня. На другой машине пользователь откроет какое-то стороннее программное обеспечение для просмотра изображений, которое заблокирует открываемый файл, обновит некоторые метаданные изображения и сохранит изменения. Проблема возникает, когда мое программное обеспечение блокирует файл изображения перед пользователем, а затем пользователь не может редактировать их файл.
Благодаря
Kristian
Сделайте быструю локальную копию во временный файл и скопируйте это вместо этого? –