1
我有一個循環處理文件夾的每個文件。如果一個文件被損壞,無法打開,我想: - 顯示錯誤信息給用戶 - 停止剩餘部分的代碼 的執行 - 循環到下一個文件VBscript錯誤處理 - 移動到「For Each」循環中的下一個項目
的問題是,如果文件不能在循環開始時打開,那麼仍然會執行很多代碼,這會拋出其他錯誤。我無法退出循環,因爲這意味着並非所有文件都會得到處理,並且我無法繼續執行代碼。請參閱下面的代碼部分。
Set fso = CreateObject("Scripting.FileSystemObject")
For each objFile in fso.GetFolder(".").Files
If lCase(fso.GetExtensionName(objFile)) = srcExtName Then
Set app = GetNewAppInstance (Program)
Set fileHandle = GetNewFileHandler(app)
On Error Resume Next
Set objOpenFile = fileHandle.Open(objFile.path)
If err.number <> 0 Then
next
MsgBox "The file " & objFile.name & " cannot be opened. Please verify that the file is not corrupted or locked." & vbNewLine & "The file will be skipped."
Set fileHandle = nothing : app.Quit : Set app = nothing
<<< How can I jump to the next file from here ? >>>
End If
On error goto 0
strSrcPath = fso.BuildPath(objOpenFile.path, fso.GetBaseName(objOpenFile.name) & "._temp")
objOpenFile.SaveAs strSrcPath, tmpExtNum
objOpenFile.Close
Set objOpenFile = nothing
Set fileHandle = nothing
app.Quit : Set app = nothing
Set app = GetNewAppInstance (Program)
Set fileHandle = GetNewFileHandler(app)
Set objOpenFile = fileHandle.Open(strSrcPath)
strTgtPath = fso.BuildPath(objOpenFile.path, fso.GetBaseName(objOpenFile.name) & "." & srcExtName)
objOpenFile.SaveAs strTgtPath, srcExtNum
objOpenFile.Close
fso.DeleteFile(strSrcPath)
Set objOpenFile = nothing
Set fileHandle = nothing
app.Quit : Set app = nothing
End If
Next
End Sub
謝謝!
就這麼簡單!非常感謝! – Bartosz
沒有問題。很高興我能幫上忙 :) –