My.Computer.FileSystem.FileExists 不起作用 [vb.net]

My.Computer.FileSystem.FileExists doesnt work [vb.net]

我不明白为什么我找不到文件,它在正确的位置。它以前工作过。但现在它只适用于同一位置的某些文件。我 100% 确定文件的路径和名称与代码中的相同....无法理解,但我找不到文件...

 If ComboBox2.Text = "  1YZ-C01C 567.737.061 CA" Then
        If My.Computer.FileSystem.FileExists("source/Chr/1YZ-C01C 567.737.061-eeprom.txt") Then
            If My.Computer.FileSystem.FileExists("source/Chrysler/1YZ-C01C 567.737.061-erom.txt") Then
                Button2.Enabled = False
                button1.Enabled = False 
        Else
            ErrorOops.Show()
            Button2.Enabled = True
            Label1.Text = "Cant Find the file."
            Exit Sub
        End If
        Else
            ErrorOops.Show()
            Button2.Enabled = True
            Label1.Text = "Cant Find the file."
            Exit Sub
        End If
    End If

您需要提供完整路径。 ("source/Chr/1YZ-C01C 567.737.061-eeprom.txt") 不是完整路径。

使用:

Path.Combine(Path, File)

因此,在您的示例文件中,文件将是: "1YZ-C01C 567.737.061-eeprom.txt" 以及 "source/Chr"

的完整路径(以 C: D: 或其他任何开头)

典型例子:

dim MyPath as string = "C:\MyData\source\Chr"
dim MyPath as string = Application.StartupPath & "\source\Chr" 'Alternative
dim MyFile as string = "1YZ-C01C 567.737.061-eeprom.txt"
If My.Computer.FileSystem.FileExists(Path.Combine(MyPath,MyFile)) then
...
end if

您需要提供完整路径。当文件与您的应用程序位于同一文件夹中时,您可以为它使用 Application.StartupPath。所以它看起来像这样:

If My.Computer.FileSystem.FileExists(Application.StartupPath & "/source/Chr/1YZ-C01C 567.737.061-eeprom.txt") Then

如果您的应用程序路径是例如 C:\test 那么结果是:C:\test/source/Chr/1YZ-C01C 567.737.061-eeprom.txt