我的应用程序主要是c ++(使用NDK)所以我使用fopen
,fwrite
等标准函数来创建和游戏保存文件并写入文件。
当我使用fopen("game.sav", "wb")
时,它似乎是在路径
/data/user/10/com.my.game/files/game.sav
。
我的应用是多用户。所以我希望有一个单独的文件夹,用户可以在其中存储他们的保存文件。而不是上面的路径,我想有像
这样的路径 /data/user/10/com.my.game/files/user0/game.sav
,
/data/user/10/com.my.game/files/user1/game.sav
等
我的应用程序的前端是Java,当注册新用户时,我想创建一个文件夹/data/user/10/com.my.game/files/user0/
。但我不知道该怎么做,因为
final File newDir = context.getDir("user0", Context.MODE_PRIVATE);
导致在/data/user/10/com.my.game/app_user0
处创建的路径是不同的路径。
可以在/data/user/10/com.my.game/files/
以及如何创建文件夹吗?
答案 0 :(得分:3)
简单的方法,这段代码你可以改变它适合很多条件。如果您知道您的路径与getFilesDir()获取的路径不同,那么您可以首先使用您知道的路径创建文件,最后两行代码仍然相同。
File file = this.getFilesDir(); // this will get you internal directory path
Log.d("BLA BLA", file.getAbsolutePath());
File newfile = new File(file.getAbsolutePath() + "/foo"); // foo is the directory 2 create
newfile.mkdir();
如果你知道“files”目录的路径:
File newfile2 = new File("/data/data/com.example.stackoverflow/files" + "/foo2");
newfile2.mkdir();
两个代码都有效。
工作证明: