需動態創建 ODBC 數據源訪問 DBF 文件,核心在於操作 Windows 注冊表。可先手工建一次數據源,再由程序修改注冊表鍵值。
RegistryKey child = Registry.HKEY_CURRENT_USER
.openSubKey("Software").openSubKey("ODBC").openSubKey("ODBC.INI")
.openSubKey("data_0930", RegistryKey.ACCESS_ALL);
String de = "F:\\commony\\test\\data\\070901"; // DBF 目錄
child.setValue(new RegStringValue(child, "SourceDB", de));
再用 sun.jdbc.odbc.JdbcOdbcDriver 連接:jdbc:odbc:data_0930 查詢 DBF 表。
File file = new File("F:\\commony\\test\\data");
File[] df = file.listFiles();
for (File f : df) if (f.isDirectory()) System.out.println(f.getName());
注意:需將 ICE JNI 的 DLL 放入 classpath。
更簡單,無需注冊表操作,直接解析 DBF 文件。網上資料豐富,不再贅述。