2011-06-25 13 views
1

内のすべてのファイルを削除します。VB6リストと私は現在、このコードを使用しています、ディレクトリ内のすべてのファイルの名前を取得する必要がありディレクトリ

Dim File As String 
File = Dir$(Environ("AppData") & "\*.exe") 

Do While Len(File) 
    MsgBox "Deleting: " & Environ("AppData") & "\" & File 
Kill Environ("AppData") & "\" & File 
    File = Dir$ 
Loop 

これは正常に動作します、しかし、それは隠し/システムは表示されません。ファイル、または 'normal'以外の属性を持つファイルの場合、その属性に関係なくファイルをリストするにはどうすればよいですか?

Kill Environ("AppData") & "\*.*" 

答えて

2

Dir関数は、属性の第二引数を取ることができます:

File = Dir$(Environ("AppData") & "\*.exe", vbHidden & vbSystem) 

あなたはDir関数hereについての詳細をフィンすることができます。

2

私はかなり常にVB6からファイルI/OのためのMicrosoftスクリプトランタイムを使用します。同じ結果を持っている私もこれを試してみました

、。それはもっと多くのことを行い、より良く、より簡単にそれを行います。小さな欠点の1つは、VBプログラムがScripting Runtime DLL(scrrun.dll)に依存していることです。このDLLはVB6 IDEから参照として追加する必要があります。

ここでは、フォルダからすべてのファイルを削除する例を示します。

' Note: This code is untested. 

Sub Main() 
    DeleteAllFilesInFolder Environ("App_Data") 
End Sub 

Sub DeleteAllFilesInFolder(strFolder As String) 

    Dim fso As Scripting.FileSystemObject 
    Dim objFolder As Scripting.Folder 
    Dim objFile As Scripting.File 

    Set fso = New Scripting.FileSystemObject 
    Set objFolder = fso.GetFolder(strFolder) 
    For Each objFile in objFolder.Files 
     objFile.Delete force:=True 
    Next 

End Sub 
+0

私が作成している環境に依存しない代替手段は許可されていません。 – Tom

関連する問題