private static final String BasePath = "/home/rafael/pesquisa/ImageSimilarity";
我正在开发一个Image比较程序,我从某个地方找到了这行代码。但是在上面的例子中,路径是为linux系统设置的,而作为Windows用户,我想为windows设备设置路径。所以我改变了路径
private static final String BasePath ="C:\imgs"
然而,这似乎是一个错误,我想这是正斜杠和反斜杠。如何在我的情况下设置路径字符串?任何帮助将不胜感激。
答案 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。
默认的名称分隔符由系统属性定义 file.separator,并在公共静态字段中可用 此类的separator和separatorChar。当路径名字符串是 转换为抽象路径名,其中的名称可能是 由默认的名称分隔符或任何其他字符分隔 底层系统支持的名称分隔符。
因此 - 它将改变操作系统所需的分离器的使用。
答案 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以使其清晰明了。