2017-09-14 85 views
0

我是新来的VB,我希望有人可以帮助我遇到的第一个重大问题。从字符串转换为整数无效的错误,但没有数字或整数类型指定

我创建了一个表格,其中:

  1. 让我在文本框中
  2. 指定一个搜索指定的文本框中使用的FolderBrowserDialog一个FOLDERPATH
  3. 传递的价值观文本框作为变量
  4. 当单击按钮时,将包含SearchString的FolderPath中的所有文件(包含通配符)返回到ListBox。

后面的按钮的代码如下:

Private Sub ListButton_Click(sender As Object, e As EventArgs) Handles ListButton.Click 
    Dim fls 
    Dim FolderPath As String 
    Dim SearchString As String 

    FolderPath = FolderPathBox.Text 
    SearchString = SearchStringBox.Text 

    fls = My.Computer.FileSystem.GetFiles(FolderPath,"*" & SearchString & "*") 
    For Each f As String In fls 
     MatchingFilesBox.Items.Add(f) 
    Next 
End Sub 

然而,分别填充SearchString在和FOLDERPATH文本框具有以下值后:

(1) 
C:\Backup\Files 

,点击按钮,将返回以下错误:

Additi附加信息:从字符串“*(1)*”到“整数”类型的转换无效。

即使我没有指定数字,例如“an”,我没有专门配置任何文本框或类或变量作为数据类型整数。上转换为数据类型整数

'fls = My.Computer.FileSystem.GetFiles(FolderPath,"*" & SearchString & "*") 
fls = My.Computer.FileSystem.GetFiles("C:\Backup\Files", "abandoning.docx") 

但是,同样的错误显示:

我已经通过从方程除去变量和通配符和硬编码的路径和文件名简化了代码

附加信息:从字符串“abandoning.docx”转换为类型“整数”无效。

我对为什么或如何在文件路径中传递或检索整数感到沮丧。我已经搜索了错误的答案,但是我阅读的文章与数字值有关,而我的文章没有;或者清空我认为已经消除的文本框;或使用替换,我不是。

任何人都可以提供任何关于克服这个问题的指导,所以我可以返回文件名中包含特定字符串的文件夹中的所有文件?

+0

请仔细阅读[提问]和取[旅游]。之后,检查失败的代码行; Intellisense会帮助你。 'GetFiles()'没有一个需要2个字符串的重载。 – Plutonix

+0

我查看了多个示例代码,其中没有一个奇怪地指定了SearchType。 我现在已经阅读了如何问问指南,并参加了巡回演讲,你说得对,Intellisense实际上给了我答案,所以这是非常有用的建议。谢谢你,Plutonix。 – ViewtifulStranger

回答

1

您传递的参数数量不正确。第二个参数应该是枚举值,总是一个数字。最后一个参数是可以是字符串的通配符。试试这个:

fls = My.Computer.FileSystem.GetFiles("C:\Backup\Files", SearchOption.SearchTopLevelOnly "*.docx") 

看看这里的参考,以你是什么在传递到的GetFiles()函数: https://msdn.microsoft.com/en-us/library/t71ykwhb(v=vs.90).aspx

+0

SearchOption.SearchTopLevelOnly正是我所错过的。谢谢曼纽尔! – ViewtifulStranger

+0

很高兴工作! –