在我的代码中获得“太多参数”异常?

时间:2015-06-03 16:05:14

标签: vb.net

我正在使用vb.net。当我尝试执行此代码时出现“太多参数”错误:

If System.IO.File.Exists("C:\Users\", My.User.Name, "Desktop\virus.exe") 
    Then

        RichTextBox1.AppendText(RichTextBox1.Text & "virus.exe" & Environment.NewLine)

    End If

有什么方法可以缩短这个吗?

2 个答案:

答案 0 :(得分:2)

  • 你的论点太多了。 File.Exists只接受一个。
  • 您需要使用&符号进行连接,而不是逗号。
  • 使用Imports导入名称空间以缩短代码并使其更清晰
  • 此外,您再次附加整个文本框。

以下是解决您所有问题的方法

Imports System.IO 'this will allow for shorter code

Dim myFile as String = "C:\Users\" & My.User.Name & "\Desktop\virus.exe"
If File.Exists(myFile) Then
    ' This will append only new text, not all of the existing text    
    RichTextBox1.AppendText("File: " & myFile & Environment.NewLine)

End If

答案 1 :(得分:0)

另一种简化方法是使用Linq ...也可以使用My.Computer.FileSystem.SpecialDirectories.Desktop转到桌面,而不必担心My.User.Name和串联字符串。 ..

这是一个简单的功能 - 如果您想在其他地方再次使用它...

 Public Shared Function DoesFileExist(ByVal Directory As String, ByVal FileName As String) As Boolean
    Return New System.IO.DirectoryInfo(Directory).GetFiles(FileName, IO.SearchOption.AllDirectories).Any
 End Function

使用示例

 If DoesFileExist(yourdirectory, yourfilename) Then
    MsgBox("Exists!")
 End If

或只是一行...

 If New System.IO.DirectoryInfo(yourdirectory).GetFiles(yourfilename, IO.SearchOption.AllDirectories).Any Then RichTextBox1.AppendText blah blah...