读取路径文件而不使用多余的反斜杠

时间:2018-07-13 13:05:58

标签: java path filepath ini ini4j

我有一个.ini文件,看起来像这样,并且正在使用ini4j来解析该文件:

[Filepath]
Inbound=C:\Users\Bilbo\Desktop\Testing

我想返回该确切的字符串(C:\ Users \ Bilbo \ Desktop \ Testing),并且我有以下Java代码:

public static String ParseIniInbound (File iniFile) throws 
InvalidFileFormatException, IOException {
    String iniFileName = iniFile.toString();
    Ini ini = new Ini(new File(iniFileName));
    String InboundPath= ini.get("Filepath", "Inbound");
    return InboundPath;
}

但是,返回的是C:UsersBilboDesktopTesting

我尝试在.ini文件中的文件路径两边加上引号,以将其作为字符串读取,但这没有用。我在.ini文件中使用了双斜杠(C:\\ Users \\ Bilbo \\ Desktop \\ Testing),该斜杠返回我正在寻找的内容(C:\ Users \ Bilbo \ Desktop \ Testing),但我希望能够只需复制并粘贴文件路径,而不必在.ini文件中手动加双斜杠。有没有一种方法可以使用ini4j从.ini文件中读取字符串,或者采用其他方法解决此问题?谢谢

2 个答案:

答案 0 :(得分:0)

在读取文件路径后,只需将斜杠更改为双斜杠即可:

public static String ParseIniInbound (File iniFile) throws 
InvalidFileFormatException, IOException {
    String iniFileName = iniFile.toString().replaceAll("\\", "\\\\");
    Ini ini = new Ini(new File(iniFileName));
    String InboundPath= ini.get("Filepath", "Inbound");
    return InboundPath;
}

答案 1 :(得分:0)

最简单的方法是禁用转义。

class ViewController: NSViewController {

    @IBOutlet weak var scrollView: NSScrollView!
    @IBOutlet weak var clipView: NSClipView!

    override func viewDidLoad() {
        super.viewDidLoad()

        let path = "/Library/Desktop Pictures/Snow.jpg"
        let url = URL(fileURLWithPath: path, isDirectory: false)

        let image = NSImage(contentsOf: url)

        let imageView = NSImageView(image: image!)

        imageView.translatesAutoresizingMaskIntoConstraints = false

        clipView.addSubview(imageView)

        let h = NSLayoutConstraint.constraints(
            withVisualFormat: "H:|[imageView]|",
            options: NSLayoutConstraint.FormatOptions(rawValue: 0),
            metrics: nil,
            views: ["imageView" : imageView])

        let v = NSLayoutConstraint.constraints(
            withVisualFormat: "V:|[imageView]|",
            options: NSLayoutConstraint.FormatOptions(rawValue: 0),
            metrics: nil,
            views: ["imageView" : imageView])

        clipView.documentView = imageView

        // NSLayoutConstraint.activate([h, v].flatMap({$0}))
    }
}

其他替代方法是改为使用Wini类

import org.ini4j.Config;
...
Config.getGlobal().setEscape(false);