我正在研究防病毒软件,基本上,当我扫描文件时,所有威胁都会被添加到列表框中,我正在尝试使用“For each”语句来删除每个项目。列表框。
我的代码:
For Each threat As String In threatsLb.Items
threatsLb.Select()
Dim KillFile As String
KillFile = threatsLb.SelectedItem.ToString()
If Len(Dir$(KillFile)) > 0 Then
SetAttr(KillFile, vbNormal)
Kill(KillFile)
End If
Next
为什么不删除列表框中项目的文件?
答案 0 :(得分:3)
对Select的调用并不符合您的想法。它不会'选择当前字符串,然后您可以使用SelectedItem获取它。它只是激活ListBox控件。
但你根本不需要它。 For Each语句循环遍历items集合,并在使用时向您返回一个项目
假设每个项目都是完整路径
For Each threat As String In threatsLb.Items
File.SetAttributes(threat, FileAttributes.Normal)
File.Delete(threat)
Next
' And finally
threatsLb.Items.Clear()