Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java文件路径中使用环境变量_Java_Bash_Shell_Unix_Ubuntu - Fatal编程技术网

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

在Java文件路径中使用环境变量,java,bash,shell,unix,ubuntu,Java,Bash,Shell,Unix,Ubuntu,我正在编写一个Java程序,将XLS文件转换为CSV文件,以便一些Python解析器对其进行操作 每天在我的桌面上(顺便说一句,我使用的是Ubuntu),我有一个名为“DFiles”的文件夹,里面还有一个名为“20140705”的文件夹(这个文件夹是动态生成的,明天其他程序会删除这个文件夹,并在它的位置创建一个名为20140706的新文件夹)。在此文件夹中有一个xls文件,其名称始终为“data.xls”。我已经有了将其转换为CSV的代码 这就是我的问题。明天我的代码将在别人的桌面上运行(也是

我正在编写一个Java程序,将XLS文件转换为CSV文件,以便一些Python解析器对其进行操作

每天在我的桌面上(顺便说一句,我使用的是Ubuntu),我有一个名为“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变量和通配符呢?

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

通配符:那不行。您可以使用
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”结尾的任何文件。

好的,我试试看。您还可以告诉我如何在文件路径中使用通配符(*)吗?
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());
    }
}