在外部存储上保存数据

Bri*_*ian 8 directory storage android file external

我想在用户的外部目录(即SD卡)中保存一些数据,但似乎有一个奇怪的问题.我正在使用Environment.getExternalStorageDirectory()哪个返回"mnt/sdcard /"(这很好).我想在这个目录中创建两个文件夹,所以我这样做:

File main = new File(getExternalStorageDirectory() + "/my_app/some_data");
if(!main.isDirectory())
    main.mkdirs();
Run Code Online (Sandbox Code Playgroud)

现在我认为这将使目录"mnt/sdcard/my_app/some_data",但在使用文件管理器查看SD卡后,发现该文件夹是在"mnt/sdcard/my_app/mnt/sdcard"创建的/ my_app/some_data",这很奇怪.谁能告诉我如何解决这个问题?

Squ*_*onk 10

尝试以下内容,看看你得到了什么......

String packageName =  this.getPackageName();
File myFilesDir = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator  + "Android" + File.separator + "data" + File.separator + packageName + File.separator + "files");
myFilesDir.mkdirs();
Run Code Online (Sandbox Code Playgroud)

我用它来创建SD卡上的工作目录.对我来说它创造了......

/mnt/sdcard/Android/data/com.mycompany.myApp/files
Run Code Online (Sandbox Code Playgroud)

...其中'com.mycompany.myApp'是我的应用的实际包名.

  • 是否可以假设"/"可以安全地代替File.separator使用? (3认同)