VB6: копировать файл в сетевые папки - PullRequest
0 голосов
/ 17 мая 2011

Я пытаюсь скопировать файл из текущей папки исполняемого файла на сетевой ресурс.

Я использовал следующий код, но если файл существует, он не заменит его. Было бы неплохо спросить, хочет ли пользователь заменить или нет.

 Set oFSO = CreateObject("Scripting.FileSystemObject")
 oFSO.GetFile("c:\file.txt").Copy "\\server\sharename\", True

Ответы [ 2 ]

2 голосов
/ 17 мая 2011

Ваш пример кода работает для меня для копирования файлов. Возможно, в вашей сетевой папке отказано в доступе.

К вашему сведению, есть альтернатива - используйте FileCopy так:

FileCopy <source file>, <destination file>

Он перезапишет пункт назначения без запроса. Если вы хотите подсказать, я могу придумать два пути:

  1. Используйте FileExists , как предлагает Гэвин, и спросите пользователя, хотят ли они перезаписать.
  2. Используйте для этого функциональность, встроенную в Windows. Похоже, это может быть вашим лучшим выбором. API SHFileOperation отобразит диалоговое окно хода выполнения с кнопкой «Отмена» во время копирования файла. Это также предложит перезаписать. Используемые диалоги такие же, как в Проводнике Windows. Используйте FO_COPY для wFunc; Я не думаю, что вам нужно устанавливать какие-либо флаги в fFlags, но могут быть некоторые интересные. Установите pFrom / pTo для ваших исходных / целевых файлов / каталогов, а hwnd для окна владельца (или 0, если их нет). Все остальное в структуре может быть NULL / 0 / пусто.
2 голосов
/ 17 мая 2011

Вам нужно будет создать свою собственную логику для проверки того, что файл существует, и открыть окно сообщения вручную, основываясь на этом.Вы можете использовать функцию FileExists , чтобы проверить, существует ли файл.

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