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