2014-10-30 119 views
2

所以我的问题不是如何从相对路径加载属性文件,而是如何声明相对路径(相对于属性文件)作为文件中的属性路径?将相对路径作为属性文件中的属性

例如,我想有一个目录等

|-etc 
|---File1 
|---File2 
|---properties. 

现在里面的属性我想是这样,

file1 = ./File1 
file2 = ./File2 

但Java将简单地得到” ./File1实际内容“

我该如何连线它才能让Java获得属性并理解​​它应该与属性文件的相对位置有关?

所以当你做new File(properties.getproperty(file1))就会将尝试寻找在文件C://等/文件1,而不是仅仅./File1

+0

如何加载属性文件? – sp00m 2014-10-30 15:48:32

+0

使用工厂或包装模式怎么样?你会用一些API使用你的File实例吗? – 2014-10-30 15:57:54

+0

有些人扩展File.class。 http://stackoverflow.com/questions/11513327/java-myfile-extends-file – 2014-10-30 15:58:54

回答

1

您需要了解Java属性文件只是键列表/值对。你如何解释这些价值取决于你。所以,你应该预料到properties.getProperty("file1")会给你字符串"./File1" ...但你可以使用,作为一个相对文件名很容易:

File rootDirectory = ...; // However you get this 
String relativePath = properties.getProperty("file1"); 
File file = new File(rootDirectory, relativePath); 
0

为了补充Jon的回答,你必须以某种方式将根文件夹作为参考点。您的行

new File(properties.getproperty(file1)) 

将查找相对路径,该路径与包含该行的已编译Java类的.class文件的位置相比较。即使你正确地设置了相对路径,如果你要移动一个类的包,代码也会中断。

相关问题