我已经熟悉了如何创建文件并将它们放在“user.home”中。我使用的是Mac电脑,对PC上的文件夹不是很了解,但在我的库中有“应用程序支持”文件夹。是否有一种方法可以将一个目录同时放置在这里和PC的“%appdata%”文件夹中?
在Windows系统中,AppData文件夹的路径是"{user.home}\Local Settings\ApplicationData";
您可以使用以下方法获取该路径:
String dataFolder = System.getProperty("user.home") + "\\Local Settings\\ApplicationData";
或者使用此方法,但它只适用于Windows,因为环境变量'APPDATA'仅在Windows下可用。
String dataFolder = System.getenv("APPDATA");
如果您想了解更多信息,可以查看如何在Java中获取本地应用程序数据文件夹?
以下是我使用的代码,如果您需要可以使用:
public FileManager() {
String FileFolder = System.getenv("APPDATA") + "\\" + "Launcher";
System.out.println("Searching for system");
String os = System.getProperty("os.name").toUpperCase();
if (os.contains("WIN")) {
FileFolder = System.getenv("APPDATA") + "\\" + "Launcher";
System.out.println("Found windows");
}
if (os.contains("MAC")) {
FileFolder = System.getProperty("user.home") + "/Library/Application " + "Support"
+ "Launcher";
System.out.println("Found mac");
}
if (os.contains("NUX")) {
FileFolder = System.getProperty("user.dir") + ".Launcher";
System.out.println("Found linux");
}
System.out.println("Searching for resource folder");
File directory = new File(FileFolder);
if (directory.exists()) {
System.out.println("Found folder");
}
if (directory.exists() == false) {
directory.mkdir();
System.out.println("Could not find folder so created it");
}
仅在 Windows 上进行了测试,能否有人在 Mac/Linux 上测试一下?
%APPDATA%
。但是,在Windows术语中,我从未听说过“应用支持”。顺便说一句,%APPDATA%
需要管理员权限才能修改其内容。user.home
的等效Windows文件夹是%USERPROFILE%
。要使用任何Windows环境变量,只需使用System.getenv(string);
。例如:System.getenv("USERPROFILE");
或System.getProperty("user.home");
- ee."user.home" + "\\Local Settings\\ApplicationData"
(PC),如果没有,我会将其放在"user.home" + "/Library/Application Support"
(MAC)中。 - Amundeep SinghSystem.getProperty("os.name")
来检测你正在使用的操作系统类型(OS)。 - donnior