我想在INI文件中为第三方Windows应用程序(CorelDrawX6)编写UNC路径。由于该ini文件包含部分,我使用ini4j来处理它。 原因是我想更改该文件中的路径,因此第三方应用程序在打开“导出”对话框(标准Windows打开对话框)时将使用此路径。 第三方应用程序将此文件存储为Windows注册表文件格式(Magic-number FF FE)。所以我不得不仔细阅读那个文件。 (第一行的UTF16 + Magicnumber) 第三方应用不喜欢使用普通网址(文件://或smb://)
我遇到的问题是我在INI文件中写入了带有Java的UNC路径:
Initial DIR = \\\\nas_sl\\daten\\orderentry\\250
但我需要这样的一行,以保持第三方应用程序正常工作:
Initial DIR = \\nas_sl\daten\orderentry\250
建议如何做到这一点?
这是我的代码:
public static void setExportPath(String exportPath) throws InvalidFileFormatException, IOException{
File f = new File(createFiltManIniPath());
FileInputStream fis = new FileInputStream(f);
InputStreamReader isr = new InputStreamReader(fis, "UTF-16");
BufferedReader br = new BufferedReader(isr);
String firstline = br.readLine(); // Save the first line, it has magic-number + non java comment in it
Ini ini = new Ini();
ini.load(br);
ini.put("MainExportFile", "Initial DIR", exportPath);
FileOutputStream fos = new FileOutputStream(f);
OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-16");
osw.append(firstline); // append at first the saved first line
osw.append("\n\n");
ini.store(osw);
osw.close();
br.close();
osw.close();
fos.close();
}