[英]Permission denied on CopyFile in VBS
我正在嘗試自動將文件推送到我的用戶的主目錄中,但我遇到了“權限被拒絕”錯誤 - 在這里的第 6 行,通過 CopyFile 調用拋出。
腳本的其他部分(未顯示)使用相同的源目錄和目標目錄創建和復制文件夾內容,它們工作得很好。 只有當我使用 CopyFile 時它才會失敗。
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
If Not fso.FileExists("H:\Minecraft\.minecraft\options.txt") Then
fso.CopyFile "C:\Minecraft\options.txt", "H:\Minecraft\.minecraft\"
End If
Set fso = Nothing
H:
是網絡主目錄,當前用戶對其具有完全的讀/寫權限。
我試過從路徑中添加/刪除尾部斜杠,將"options.txt"
添加到目標路徑,刪除false
參數......不知道還有什么可以嘗試的。 有什么想法嗎?
僅供參考,這段代碼緊接在上面容易出錯的位之前,每次都能完美執行:
If Not fso.FolderExists("H:\Minecraft\.minecraft\bin\") Then
If Not fso.FolderExists("H:\Minecraft\.minecraft\") Then
fso.CreateFolder("H:\Minecraft\.minecraft\")
End If
fso.GetFolder("C:\Minecraft\bin\").Copy "H:\Minecraft\.minecraft\"
End If
在以下 3 種情況之一中,我只見過CopyFile
因“權限被拒絕”錯誤而失敗:
對我來說,在文件夾位置的末尾添加/
工作。 因此,如果您要復制到文件夾中,請不要忘記將/
要檢查的另一件事是是否有任何應用程序仍保留該文件。
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\\"
之后添加反斜杠時,我的問題就解決了。 嘗試添加反斜杠。 也許解決了你的問題。 祝你好運。
你可以這樣做:
fso.CopyFile "C:\Minecraft\options.txt", "H:\Minecraft\.minecraft\options.txt"
在您復制到的文件夾中包含文件名。
值得檢查任務管理器是否有任何卡住的流浪 wscript.exe 任務。 它可能是阻止訪問文件的那些之一。
您的防病毒軟件可能會阻止腳本的活動。 我在 AVG Antivirus 以靜默模式運行時遇到了這個問題(這意味着它不會提醒您它采取的每個保護步驟,因此您會收到權限錯誤而沒有意識到 AVG 正在阻止該操作)。 就我而言,我調用了詳細模式(關閉了靜默模式),執行了腳本,AVG 提出了一個攔截警告,允許我訓練 AVG 以允許該腳本運行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.