3 回答

TA貢獻(xiàn)1951條經(jīng)驗(yàn) 獲得超3個(gè)贊
1.)在這里檢查?;旧献龅竭@一點(diǎn):
Function FileExists(ByVal FileToTest As String) As Boolean
FileExists = (Dir(FileToTest) <> "")
End Function
我將留給您找出所需的各種錯(cuò)誤處理,但這是我要考慮的錯(cuò)誤處理內(nèi)容之一:
檢查是否傳遞了空字符串。
檢查文件名/路徑中包含非法字符的字符串
2.)如何刪除文件??催@個(gè) 基本上使用Kill命令,但是您需要考慮將文件設(shè)為只讀的可能性。這是為您提供的功能:
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
同樣,我將把錯(cuò)誤處理留給您,這些也是我考慮的事情:
目錄和文件的行為是否應(yīng)該有所不同?用戶是否應(yīng)該必須明確表示必須刪除目錄?
您是要代碼自動(dòng)重置只讀屬性,還是應(yīng)該向用戶提供某種指示,說明已設(shè)置了只讀屬性?
編輯:將此答案標(biāo)記為社區(qū)Wiki,以便任何人可以根據(jù)需要進(jìn)行修改。

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

TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超16個(gè)贊
我可能會(huì)為此感到惱火,但是如果您要?jiǎng)h除它,那么測(cè)試存在性的重點(diǎn)是什么?我最主要的煩惱之一是一個(gè)應(yīng)用程序引發(fā)錯(cuò)誤對(duì)話框,顯示類似“無法刪除文件,它不存在!”之類的錯(cuò)誤對(duì)話框。
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.
如果文件不存在,任務(wù)就完成了!
- 3 回答
- 0 關(guān)注
- 801 瀏覽
添加回答
舉報(bào)