我有一个aplicattion,需要创建一个文件夹解压缩一些文件,但我想传递一个文件路径,我的应用程序可以运行,创建和保存我的文件在任何操作系统,但我不知道应该是什么输出路径来做到这一点。
例如:
File folder = new File(outputFolder);
if (!folder.exists()) {
folder.mkdir();
}
我应该在outputFolder中使用什么路径在任何操作系统(Windows,mac或linux)的Documents / UnzipTest中创建我的文件夹?
答案 0 :(得分:6)
System.getProperty("user.dir");
或者如果您使用的是Java 7
Filesystems.getDefault();
将为您提供工作的基本目录。
答案 1 :(得分:2)
String userHome = System.getProperty("user.home");
String outputFolder = userHome + File.separator + "dir1";
File folder = new File(outputFolder);
if (!folder.exists()) {
folder.mkdir();
}
答案 2 :(得分:1)
我会为 root 文件夹定义一个属性(例如在某些外部属性文件中),因此用户可以在安装后或安装期间为所有操作定义根文件夹的内容
其他选项是使用用户文件夹(又名主文件夹)作为此根文件夹(或者如果未定义上面的属性),在系统属性{{1 }}。或者使用安装了应用程序的文件夹 - 您可以找到它,例如通过在应用程序jar中找到一些资源,然后从返回的URL解析路径。
定义根文件夹后,您可以使用构造函数user.dir
;您只需在new File(rootFolder, outputFolder)
中使用斜杠作为路径(例如/ foo / bar)。这样的路径适用于所有操作系统。
答案 3 :(得分:1)
您可以使用Commons IO中的Apache Commons与FileUtils
和FilenameUtils
类。
如果您在应用程序中使用路径的UNIX样式,则可以使用以下方法将路径转换为SO样式:
org.apache.commons.io.FilenameUtils.separatorsToSystem(String)
如果您希望仅在不存在的情况下创建目录:
org.apache.commons.io.FileUtils.forceMkdir(File)
可能你有一个目录路径,可能你需要在这个目录中有一个新文件夹,你可以使用该方法获取完整路径:
org.apache.commons.io.FilenameUtils.concat(String, String)
路径返回路径始终规范化,包含系统格式的分隔符。
您是否需要用户目录路径:
org.apache.commons.io.FileUtils.getUserDirectory()
答案 4 :(得分:0)
String outputFolder = System.getProperty("user.home") + File.separator + "Documents" + File.separator +"TestandoUnzip";
我需要的代码。谢谢你们。