我正在编写一个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变量和通配符?
答案 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'。
结尾的任何文件。