DBF 文件名中的下划线

Underscore in DBF file name

我正在编写一个 VB NET 程序来使用 OleDbReader 读取 dBase .dbf 文件。当文件名包含下划线时,OleDbDataReader 会给出一个文件未找到错误,而名称中没有下划线的同一文件工作正常。

我正在做的一些示例代码:

    Dim dBaseConnection As OleDbConnection
    Dim dBaseCommand As OleDbCommand
    Dim dBaseDataReader As OleDbDataReader
    Dim schemaTable As DataTable
    Dim x, y, z

    Dim Builder As New OleDbConnectionStringBuilder With
        {
            .DataSource = IO.Path.GetDirectoryName(filename),
            .Provider = "Microsoft.Jet.OLEDB.4.0"
        }
    Builder.Add("Extended Properties", "dBase III")

    dBaseConnection = New OleDbConnection With {.ConnectionString = Builder.ConnectionString}
    dBaseConnection.Open()

    dBaseCommand = New OleDbCommand("SELECT * FROM " & filename, dBaseConnection)
    dBaseDataReader = dBaseCommand.ExecuteReader(CommandBehavior.SequentialAccess)
    schemaTable = dBaseDataReader.GetSchemaTable()

        While dBaseDataReader.Read And Not _abort
            x = Val(dBaseDataReader("x").ToString)
            y = Val(dBaseDataReader("y").ToString)
            z = Val(dBaseDataReader("z").ToString)

            'do other stuff here
        End While

有谁知道下划线是否是 dbf 文件名的禁止符号?或者这是某种错误?

在这种情况下,文件名是 "c:\temp\test_info.dbf"。

这可能是因为文件名(扩展名前)的长度超过 8 个字符。在 dBase 时代,8.3 是任何 dbf 文件的最大值。