我想通过vb实现删除u盘中存在的隐藏文件,因为病毒往往都是隐藏文件。我已经完成了识别u盘部分,剩下的获取隐藏文件和删除部分,由于本人水平有限,希望大虾指点一下。我是用vb6.0写的,源程序如下。
我想通过vb实现删除u盘中存在的隐藏文件,因为病毒往往都是隐藏文件。我已经完成了识别u盘部分,剩下的获取隐藏文件和删除部分,由于本人水平有限,希望大虾指点一下。我是用vb6.0写的,源程序如下。
给点例子你,不知能不能对你有帮助.
Dir ([PathName],[Attributes as VbFileAttribute = vbNormal]) as String
解释:PathName:文件或文件夹的绝对路径。
Attributes:文件的属性--默认值:vbNormal 是普通文件,vbHidden 是隐藏文件,vbDirectory是文件夹。
"[]"内为可以选项。Dir(file)=""表示文件或文件夹不存,即文件或文件夹的实际路径文空。Dir(file)<>""表示文件或文件夹存在,即文件或文件夹实际路径不为空。
例如判断C:\Windows\System32\cmd.exe是否存在,如存在,就调用它,可用下列语句:
’文件存,利用Shell调用,默值为vbNormal
If Dir("C:\Windows\System32\cmd.exe")<>"" Then
Shell "C:\Windows\System32\cmd.exe"
End If
如果判断的文件是隐藏文件,上面的语则无法判断出来,这时就需要加上后面的可选项目,例如
判断D盘根目录下是否有隐藏文件text.txt,就用下面的源代码:
If Dir("D:\text.txt",vbHidden)<>"" Then
Msgbox "找到Text.txt隐藏文件"
End If
判断件夹是否存,与判断隐藏文件的方法一样,可用下列语句:
Dir("文件夹路径",vbDirectory)<>""
例如,要判断文件D:\Backup是否存在,源代码如下:
If Dir("D:\Backup",vbDirectory)<>"" Then
Msgbox "文件夹:D:\Backup 存在!"
End If
简单的
s = Dir("U盘\*.*", vbHidden)
Do While s <> ""
SetAttr "cU盘\" & s, vbNormal
s=dir()
Loop
Kill "U盘\*.*"
简单的
s = Dir("U盘\*.*", vbHidden)
Do While s <> ""
SetAttr "cU盘\" & s, vbNormal
s=dir()
Loop
Kill "U盘\*.*"
关于这点,我这里有个问题,如果u盘中没有其他文件,只有病毒文件,这个过程是可以的,但是如果同时还有其他文件,kill "u盘\*.*" 就会删除u盘中所有的文件了。也包括非隐藏文件。
画公仔要画出肠了
再加一个判断,如果是隐藏就删除
s = Dir("U盘\*.*", vbHidden)
Do While s <> ""
If GetAttr("U盘\" & s) = vbHidden Then
SetAttr "U盘\" & s, vbNormal
Kill "U盘" & s
End If
s = Dir()
Loop
提醒你一下,如果又只读,又是隐藏,vbHidden 参数又变了.
谢谢你了,我已经用上面那个段代码给解决问题了。不过现在又有点新的问题就是
Private Sub 退出_Click()
Dim nType As Long
Dim s As String
Dim sDrive As String
Dim pos As Integer
Dim nName As Long
s = String(256, Chr(0)) '清空S
GetLogicalDriveStrings Len(s), s '获得盘符
Do
pos = InStr(s, Chr(0))
sDrive = Left(s, pos - 1)
s = Mid(s, pos + 1)
nType = GetDriveType(sDrive)
If nType = 2 Then
'在这里添加一行代码,实现打开优盘功能。
Exit Do
End If
Loop Until pos <= 0
End
End Sub
上面那个问题我已经解决了。Shell "explorer " & App.Path, vbNormalFocus