3 回答

TA貢獻1951條經驗 獲得超3個贊
1.)在這里檢查?;旧献龅竭@一點:
Function FileExists(ByVal FileToTest As String) As Boolean
FileExists = (Dir(FileToTest) <> "")
End Function
我將留給您找出所需的各種錯誤處理,但這是我要考慮的錯誤處理內容之一:
檢查是否傳遞了空字符串。
檢查文件名/路徑中包含非法字符的字符串
2.)如何刪除文件。看這個 基本上使用Kill命令,但是您需要考慮將文件設為只讀的可能性。這是為您提供的功能:
Sub DeleteFile(ByVal FileToDelete As String)
If FileExists(FileToDelete) Then 'See above
' First remove readonly attribute, if set
SetAttr FileToDelete, vbNormal
' Then delete the file
Kill FileToDelete
End If
End Sub
同樣,我將把錯誤處理留給您,這些也是我考慮的事情:
目錄和文件的行為是否應該有所不同?用戶是否應該必須明確表示必須刪除目錄?
您是要代碼自動重置只讀屬性,還是應該向用戶提供某種指示,說明已設置了只讀屬性?
編輯:將此答案標記為社區Wiki,以便任何人可以根據需要進行修改。

TA貢獻1845條經驗 獲得超8個贊
我否則完全同意布雷特斯基的答案的另一種編碼方式可能是
With New FileSystemObject
If .FileExists(yourFilePath) Then
.DeleteFile yourFilepath
End If
End With
效果相同,但變量聲明更少(或者完全沒有)。
FileSystemObject是一個非常有用的工具,非常值得與之友好。除了其他方面,對于文本文件編寫,它有時有時可能比傳統方法要快,這可能會讓一些人感到驚訝。(至少以我的經驗,YMMV)。

TA貢獻1801條經驗 獲得超16個贊
我可能會為此感到惱火,但是如果您要刪除它,那么測試存在性的重點是什么?我最主要的煩惱之一是一個應用程序引發錯誤對話框,顯示類似“無法刪除文件,它不存在!”之類的錯誤對話框。
On Error Resume Next
aFile = "c:\file_to_delete.txt"
Kill aFile
On Error Goto 0
return Len(Dir$(aFile)) > 0 ' Make sure it actually got deleted.
如果文件不存在,任務就完成了!
- 3 回答
- 0 關注
- 803 瀏覽
添加回答
舉報