在Java文件路径中使用环境变量

时间:2014-07-05 11:36:41

标签: java bash shell unix ubuntu

我正在编写一个Java程序,将XLS文件转换为CSV文件,以便某些Python解析器对它们起作用。

每天在我的桌面上(我使用的是Ubuntu btw)我有一个名为" DFiles"的文件夹。其中有另一个名为" 20140705"的文件夹。 (这个文件夹是动态生成的,明天其他一些程序会删除这个文件夹并在其位置创建一个名为20140706的新文件夹)。在此文件夹中有一个xls文件,其名称始终为" data.xls"。我已经有了将其转换为CSV的代码。

所以这就是我的问题。明天我的代码运行在别人的桌面上(也就是Ubuntu)。所以当给出路径时

input_document = new FileInputStream(new File("/home/local/TNA/srini/Desktop/DFiles/20140705/data.xls"+)); 

不幸的是,这只能在今天才能使用,只能在我的电脑上使用。

理想情况下,我想做一些事情,例如设置路径为" $ HOME / Desktop / Dfiles / 2 * / data.xls"作为文件路径。那么如何在java中的文件路径中使用bash env变量和通配符?

1 个答案:

答案 0 :(得分:1)

您可以使用System.getenv(...)获取环境变量的值:

String homeDir = System.getenv("HOME");
String directory = homeDir + "/Desktop/DFiles/...";

通配符:这不起作用。您可以使用listFiles()列出某个目录中的文件和目录。

File dir = new File(homeDir + "/Desktop/DFiles";
for (File f : dir.listFiles()) {
    if (f.isDirectory()) {
        System.out.println("Found subdirectory: " + f.getName());
    } else {
        System.out.println("Found file: " + f.getName());
    }
}

您可以编写一些递归进入子目录的代码,并选取名称以' .xls'。

结尾的任何文件。