如何从可能表示绝对路径或相对路径的字符串创建文件?

时间:2011-10-03 22:47:28

标签: java

我有一个名为 baseDir 的File对象指向的目录,其中保存了我的大部分文件。

我有一个字符串 f ,它可能包含相对文件名,如“data.gz”,或绝对文件名,如“/mnt/data.gz”(在配置文件中指定)

如果 f 是相对的,则应该假定指定的文件在 baseDir 中,但如果它是绝对的,那么应该相应地对待它。 / p>

如何创建指向 f 所代表的文件的File对象?

我可以想到hacky解决方案(例如。if (f.startsWith("/")) ...,但我希望有一个“正确的方法”来做到这一点。

哦,我尝试使用File对象的File(File,String)构造函数,但它没有按照我的需要去做。

2 个答案:

答案 0 :(得分:1)

使用File.isAbsolute(x)

http://download.oracle.com/javase/6/docs/api/java/io/File.html#isAbsolute%28%29

如果返回false,则添加您的basedir。

答案 1 :(得分:0)

您可以尝试以下操作:

File file = new File(f);
if(file.isAbsolute())
    ...

注意绝对路径的定义是系统依赖的!