Отказано в разрешении на CopyFile в VBS
Я пытаюсь автоматизировать нажатие файла в домашние каталоги моих пользователей, но застрял на ошибке "отказано в разрешении" - бросается на строку 6 здесь, с вызовом CopyFile.
есть другие части скрипта (не показаны), которые создают и копируют содержимое папки, используя те же исходные и целевые каталоги, и они работают отлично. Только когда я использую CopyFile, он терпит неудачу.
dim fso
set fso = CreateObject("Scripting.FileSystemObject")
if not fso.FileExists("H:Minecraft.minecraftoptions.txt") then
fso.CopyFile "C:Minecraftoptions.txt", "H:Minecraft.minecraft"
end if
set fso = nothing
H:
- это сетевой домашний каталог, к которому текущий пользователь имеет полное чтение/запись privs.
Я попытался добавить / удалить конечные косые черты из путей, добавив "options.txt"
к пути назначения, удаляя
5 ответов
Я только когда-либо видел CopyFile
сбой с ошибкой" отказано в разрешении " в одном из этих 3 сценариев:
- фактическая проблема разрешения с источником или назначением.
- путь назначения-это папка, но не имеет обратной косой черты.
- исходный файл заблокирован приложением.
для меня /
работал в конце местоположения папки.
Следовательно, если вы копируете в папку, не забудьте поставить /
еще одна вещь, чтобы проверить, если какие-либо приложения по-прежнему удерживают файл.
были некоторые проблемы с MoveFile. Часть моей проблемы с разрешениями заключалась в том, что мой скрипт открывает файл (в данном случае в Excel), вносит изменения, закрывает его, а затем перемещает в "обработанную" папку.
при отладке нескольких вещей сценарий несколько раз разбился. Копаясь в ошибке отказа в разрешении, я обнаружил, что у меня было 4 экземпляра Excel, работающих в фоновом режиме, потому что скрипт никогда не смог правильно завершить работу приложения из-за указанных сбоев. По-видимому, один из них все еще держал файл и, таким образом, "разрешение отказано."
на основе исходной переменной (sourcePath = "C:\Minecraft\bin\"
) Я подозреваю, что ваш жесткий код, указывающий на неправильное место
fso.CopyFile "C:\Minecraft\options.txt", destinationPath, false
должно быть
fso.CopyFile "C:\Minecraft\bin\options.txt", destinationPath
или
fso.CopyFile sourcePath & "options.txt", destinationPath
Я прочитал вашу проблему, и у меня была такая же проблема. Но после того, как я изменил некоторые, моя проблема "отказано в разрешении" решена.
Private Sub Addi_Click()
'On Error Resume Next
'call ds
browsers ("false")
Call makeAdir
ffgg = "C:\Users\Backups\user\" & User & "1\data\"
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.Getfolder("c:\users\Backups\user\" & User & "1\data")
f.Attributes = 0
Set fso = VBA.CreateObject("Scripting.FileSystemObject")
Call fso.Copyfile(filetarget, ffgg, True)
посмотреть ffgg = "C:\Users\Backups\user\" & User & "1\data\"
, прежде чем я изменил это было ffgg = "C:\Users\Backups\user\" & User & "1\data"
когда я добавляю обратную косую черту после "\data\"
, моя проблема решена. Попробуйте добавить обратную косую черту. Может, решил твою проблему. Удача.