无法以编程方式解析$ {file.separator}以读取属性路径

时间:2018-02-05 04:50:51

标签: java spring

我正在尝试读取包含文件路径的属性,包括在路径中登录的用户名,如下所示。

test.file = $ {file.separator} test $ {file.separator} $ {user.name} $ {file.separator} file.txt

当我在类中使用@Value注释读取属性并在pom.xml中将其用作参数时,我能够读取具有OS特定路径(/ - unix或-windows)的文件。

当我从属性文件中将其作为常规属性读取时,spring将其作为预期的另一个字符串值读取。

但如果我将此值传递给File构造函数,则$ {file.separator}无法解析..

在属性文件中表示文件分隔符的最佳方法是什么?我想避免使用.replace技术在代码中用File.separator替换变量。

1 个答案:

答案 0 :(得分:1)

如果您只是寻找一个平台中立的文件分隔符,那么我们一直在使用/分隔符而没有任何问题。

path=C:/Users/<user_name>/myconfig.properties
path=/Users/<user_name>/myconfig.properties

以下代码在两个系统上始终返回true。

finput = new File(prop.getProperty("path"));
System.out.println(finput.exists());