以“Windows格式”将UNC路径写入INI文件

时间:2013-04-18 16:41:45

标签: java windows ini unc

我想在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();
}

0 个答案:

没有答案