0

我一直在编写一个代码来删除我们今天面临的常见病毒,它只是将所有数据放入一个没有标题的特殊文件夹中。实际上它是chr(160)VB中的一个。当我获得目录列表时,它显示为空名称,但我无法更改其名称或查看其内容。

PS您可以通过创建一个名称为的文件夹来测试它Alt+0160

For Each foldername In Directory.GetDirectories("d:\x\ ") 
    TextBox1.Text += foldername + vbCrLf 
    If fname = " " Then      
        FileIO.FileSystem.RenameDirectory(foldername, "temp")     
    End If 
Next
4

2 回答 2

1

您正在与 chr(160) 和空格字符进行比较。尝试将 fname 与不间断空格字符进行比较。chr(160) 返回一个 char 类型,因此您需要确保 fname 是相同的类型。

For Each foldername In Directory.GetDirectories("d:\x\ ") 
    TextBox1.Text += foldername + vbCrLf 
    If fname = chr(160) Then      
        FileIO.FileSystem.RenameDirectory(foldername, "temp")     
    End If 
Next
于 2015-03-23T00:35:40.103 回答
1

你在正确的轨道上,是的,有 Chr(160)。如果你不知道目录在哪里,那么使用直接的方法,否则搜索所有子目录的给定目录检查每个子目录的名称,如果你得到一个命中然后重命名它。

My.Computer.FileSystem.RenameDirectory("d:\x\" & Chr(160) & "\", "NewNameGoHere")
Or
        Dim path as string = "d:\x\" 
        Dim di As New IO.DirectoryInfo(path)
        Dim Drs() As IO.DirectoryInfo = di.GetDirectories()
        For Each dr As IO.DirectoryInfo In Drs
           if dr.name = chr(160) then
           My.Computer.FileSystem.RenameDirectory(path & dr.name & "\", "NewNameGoHere")
           end if
        Next
于 2016-05-12T12:57:29.177 回答