我想使用Java访问我的当前工作目录。
我的代码:
String currentPath = new java.io.File(".").getCanonicalPath();
System.out.println("Current dir:" + currentPath);
String currentDir = System.getProperty("user.dir");
System.out.println("Current dir using System:" + currentDir);
输出:
Current dir: C:\WINDOWS\system32
Current dir using System: C:\WINDOWS\system32
我的输出不正确,因为C驱动器不是我的当前目录。
如何获取当前目录?
这将给你当前工作目录的路径:
Path path = FileSystems.getDefault().getPath(".");
这将为您提供工作目录中名为“Foo.txt”的文件的路径:
Path path = FileSystems.getDefault().getPath("Foo.txt");
编辑:
获取当前目录的绝对路径。
Path path = FileSystems.getDefault().getPath(".").toAbsolutePath();
*更新*
获取当前工作目录:
Path path = FileSystems.getDefault().getPath("").toAbsolutePath();
我最喜欢的方法是从附加到当前运行进程的系统环境变量中获取。在这种情况下,您的应用程序由JVM管理。
String currentDir = System.getenv("PWD");
/*
/home/$User/Documents/java
*/
查看其他你可能会发现有用的环境变量,如home dir, os版本........
//Home directory
String HomeDir = System.getEnv("HOME");
//Outputs for unix
/home/$USER
//Device user
String user = System.getEnv("USERNAME");
//Outputs for unix
$USER
这种方法的美妙之处在于,对于所有类型的操作系统平台,所有路径都将被解析