我如何使用'For each'语句?

时间:2016-01-20 09:22:45

标签: vb.net foreach

我正在研究防病毒软件,基本上,当我扫描文件时,所有威胁都会被添加到列表框中,我正在尝试使用“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

为什么不删除列表框中项目的文件?

1 个答案:

答案 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()