我正在制作一个游戏,该游戏需要在用户帐户的 AppData 文件夹中制作某个目录。现在的问题是,我不知道该把它放在哪里,因为每个用户都是不同的。顺便说一句,这是在窗户上。我想知道我是否应该写一些特别的东西或者...
File file = new File("C:\\Users\\%USER%\\AppData\\Roaming\\[gameName]");
是否有一些特殊的名字我必须给“%USER%”(我只是用它作为例子),或者我还有其他事情要做吗?
您可以使用通常为“C:\Users\username\AppData\Roaming”的 APPDATA 环境变量
您可以使用 System.getenv() 函数获取它:
String appData = System.getenv().get("APPDATA");
编辑 :
看这个例子(创建一个目录“myGame”并在这个目录中创建一个文件“myGameFile”)。代码很糟糕,但这只是为了让您了解它是如何工作的。
String gameFolderPath, gameFilePath;
gameFolderPath = System.getenv().get("APPDATA") + "\\myGame";
gameFilePath = gameFolderPath + "\\myGameFile";
File gameFolder = new File(gameFolderPath);
if (!gameFolder.exists()) {
// Folder doesn't exist. Create it
if (gameFolder.mkdir()) {
// Folder created
File gameFile = new File(gameFilePath);
if (!gameFile.exists()) {
// File doesn't exists, create it
try {
if (gameFile.createNewFile()) {
// mGameFile created in %APPDATA%\myGame !
}
else {
// Error
}
} catch (IOException ex) {
// Handle exceptions here
}
}
else {
// File exists
}
}
else {
// Error
}
}
else {
// Folder exists
}
user.home
您可以使用 windows属性检索当前主用户路径:
String homeFolder = System.getProperty("user.home")
使用 Windows 环境变量 %APPDATA%。它指向您想要的路径,但我不确定所有 Windows 版本都具有该变量。