在String中保存路径

时间:2015-07-09 10:29:46

标签: java

private static final String BasePath = "/home/rafael/pesquisa/ImageSimilarity";

我正在开发一个Image比较程序,我从某个地方找到了这行代码。但是在上面的例子中,路径是为linux系统设置的,而作为Windows用户,我想为windows设备设置路径。所以我改变了路径

private static final String BasePath ="C:\imgs"

然而,这似乎是一个错误,我想这是正斜杠和反斜杠。如何在我的情况下设置路径字符串?任何帮助将不胜感激。

4 个答案:

答案 0 :(得分:3)

你需要在windows路径中转义反斜杠,如下所示:

private static final String BasePath = "C:\\imgs";

您也可以使用forwardslash:

private static final String BasePath = "C:/imgs";

答案 1 :(得分:1)

您需要更改

private static final String BasePath ="C:\imgs"

private static final String BasePath ="C:\\imgs"

单个\是一个转义字符并导致出现“无效转义字符”问题,这是因为\ i应该是一个转义字面值。 (幸运的是,它不是。)\\是单个\的有效转义文字,因此它解决了问题。

继续问题场景,如果你有例如

 String path = "c:\noproblem";

然后没有问题编译,因为\ n是一个有效的转义字符。 (但它会导致其他问题。)

但更好的是,使用File.separator。

来自Java Documentation

  

默认的名称分隔符由系统属性定义   file.separator,并在公共静态字段中可用   此类的separator和separatorChar。当路径名字符串是   转换为抽象路径名,其中的名称可能是   由默认的名称分隔符或任何其他字符分隔   底层系统支持的名称分隔符。

因此 - 它将改变操作系统所需的分离器的使用。

查看How to construct a file path in java

答案 2 :(得分:1)

您可以使用File.separator,然后您不必担心特定于平台的路径分隔符。例如以下

private static final String BASE_PATH = "C:" + File.separator + "imgs";

可以找到更多详细信息here

答案 3 :(得分:0)

使用

时,你的东西应该有用
private static final String BasePath = "C:\\imgs";

注意:

虽然您仍然可以使用正斜杠来实现此功能,但我建议您使用File.separator以使其清晰明了。