2015-12-04 6 views
1

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

У нас есть ситуация, когда мы синхронизируем локальный файл с сетевым файлом в соответствии с приведенным ниже кодом. Например, если сетевой файл существует, скопируйте его на локальный диск. Если сетевой файл не существует, удалите его с локального диска.

Вопрос в том, требуется ли мне задержка/испытание между линией Kill и линией Filecopy? Пока что тестирование не вызвало никаких проблем, но я все еще немного не уверен, достаточно ли этого.

Sub copyFile() 

Const SFile As String = "N:\Test.txt" 
Const tFile As String = "C:\Test.txt" 

On Error Resume Next 

Kill tFile 

On Error GoTo errTrap 

FileCopy SFile, tFile 
errTrap: 
End Sub 

ответ

2

Я думаю, что ваш код хорош, вы можете добавить обработчик ошибок, когда ошибка FileCopy.

Sub copyFile() 

Const SFile As String = "N:\Test.txt" 
Const tFile As String = "C:\Test.txt" 

On Error Resume Next 

Kill tFile 

On Error GoTo errTrap 

FileCopy SFile, tFile 
exit sub 

errTrap: 
'do something when FileCopy Error 

End Sub 
+0

Спасибо за ответ .. Моя фактическая забота была возможность кода VBA Забегая вперед ОС, то есть пытается скопировать файл перед тем, оригинал был полностью удален .. Код, как показано есть было упрощено, чтобы проиллюстрировать это, следовательно, отсутствие обработки ошибок. – DaveU

+0

Это не должно быть проблемой, или вы можете попробовать это [ссылка] (http://stackoverflow.com/questions/16943003/vba-to-copy-a-file-from-one-directory-to-another) –

+1

Эрик, ты на самом деле не сказал мне ничего, чего я еще не знал, я ждал более «глубокого» ответа, который бы попал в моменты времени между VBA и ОС. Поскольку никто, кажется, не готов, я проверю ваш ответ. Обратите внимание, что этот комментарий не предназначен для умаления, я действительно ценю ваш вклад. Благодарю. – DaveU

Смежные вопросы