1
  • 最佳答案
    Log.i("-->"," getCacheDir = "+getCacheDir().getPath().toString());
    Log.i("-->","getAbsolutePath getCacheDir = "+getCacheDir().getAbsolutePath().toString());
    Log.i("-->"," getFilesDir = "+getFilesDir().getPath().toString());
    Log.i("-->","getAbsolutePath getFilesDir = "+getFilesDir().getAbsolutePath().toString());
    Log.i("-->"," getExternalStorageDirectory = "+ Environment.getExternalStorageDirectory().getPath());
    Log.i("-->"," getExternalStorageDirectory = "+ Environment.getExternalStorageDirectory());
    Log.i("-->"," getExternalStoragePublicDirectory = "+ Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS));
    Log.i("-->"," getCacheDir = "+getExternalCacheDir().getPath().toString());
    
    /***
     *  模拟器
     *  getCacheDir = /data/user/0/com.example.pedometer/cache
     *  getFilesDir = /data/user/0/com.example.pedometer/files
     *  getExternalStorageDirectory = /storage/emulated/0
     *  getExternalStorageDirectory = /storage/emulated/0
     *  getExternalStoragePublicDirectory = /storage/emulated/0/$MuMu共享文件夹
     *  getCacheDir = /storage/emulated/0/Android/data/com.example.pedometer/cache
     *
    


    1382711465131241472  评论     打赏       阿肥
    • 老实本分的读书人  回复 @阿肥
      你好请问这段代码是什么意思呀,我把文件创建目录改成了File filePath = new File("storage/emulated/0"); 但是仍然有报错提示java.io.FileNotFoundException: storage/emulated/0/info.txt: open failed: EPERM (Operation not permitted)
      老实本分的读书人 2022-03-09 16:38   回复 1501022769779838977
    • 老实本分的读书人  回复 @阿肥
      我把目录改成getExternalStoragePublicDirectory获取到的目录storage/emulated/0/Download之后文件创建成功了!!!感谢感谢!!!
      老实本分的读书人 2022-03-09 16:44   回复 1501022769779838977
    • 阿肥  回复 @老实本分的读书人
      如果创建失败 考虑的就是路径或者代码问题了 该路径证明代码没错 这样就可以了
      阿肥 2022-03-09 16:45   回复 1382711465131241472
    • 老实本分的读书人  回复 @阿肥
      问题解决了,改了一下文件目录,感谢感谢!!!
      老实本分的读书人 2022-03-09 16:53   回复 1501022769779838977
    • 阿肥  回复 @老实本分的读书人
      靓仔 解决了要设置最佳答案 后面才能继续提问 不然堆着后面提问不了了
      阿肥 2022-03-10 09:18   回复 1382711465131241472
    • 老实本分的读书人  回复 @阿肥
      好的好的
      老实本分的读书人 2022-03-15 17:33   回复 1501022769779838977
  • 内部储存目录是/mnt/sdcard/下

    你要存文件,你应该在/sdcard/下面创建文件或者文件夹

    你和sdcard同级别?不行的。

    1139423796017500160  评论     打赏       断点-含光君
    • 老实本分的读书人  回复 @断点-含光君
      我把目录改成了File filePath = new File("/mnt/sdcard/");还是提示报错java.io.FileNotFoundException: /mnt/sdcard/info.txt: open failed: EACCES (Permission denied)呀
      老实本分的读书人 2022-03-09 16:33   回复 1501022769779838977
    • 拉大锯  回复 @老实本分的读书人
      用官方的API获取嘛,具体是哪个路径由厂商去决定。
      拉大锯 2022-03-09 16:46   回复 1153952789488054272
    • 老实本分的读书人  回复 @拉大锯
      问题解决了,改了一下文件目录,感谢感谢!!!
      老实本分的读书人 2022-03-09 16:53   回复 1501022769779838977
    • 断点-含光君  回复 @老实本分的读书人
      不能用硬编码路径获取的,你需要用api, Environment.getExternalStorageDirectory() 这个才是sdcard的根路径,不能自己拼接,如果手机厂商改了,你拼接没用了。
      断点-含光君 2022-03-09 17:01   回复 1139423796017500160
    • 老实本分的读书人  回复 @断点-含光君
      也就是说不同手机的路径都有可能不同,在自己写app的时候要用Environment.getExternalStorageDirectory() 动态地获取sdcard地路径是吗
      老实本分的读书人 2022-03-09 17:15   回复 1501022769779838977
    • 码划云  回复 @断点-含光君
      Android11 用这个不行 得 换成Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS)就可以了
      码划云 2022-03-09 17:15   回复 1231137268748521472
    • 断点-含光君  回复 @码划云
      所以,不同系统还得适配,肯定不能手写路径
      断点-含光君 2022-03-09 17:17   回复 1139423796017500160
    • 断点-含光君  回复 @老实本分的读书人
      是的,这个只是针对低于Android11的,下面老哥说了11之后的存储位置有严格要求,不能乱放的,需要特殊api了
      断点-含光君 2022-03-09 17:18   回复 1139423796017500160
    • 老实本分的读书人 2022-03-09 17:19   回复 1501022769779838977
    • 老实本分的读书人  回复 @码划云
      对的,我刚才试了下发现Environment.getExternalStorageDirectory() 获取到的路径还是不对,换成Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS)就可以了
      老实本分的读书人 2022-03-09 17:19   回复 1501022769779838977
    • 码划云  回复 @老实本分的读书人
      但是低于11的用这个Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS)也会保存喔 所以要判断版本 11才用这个不是的话用原来那个
      码划云 2022-03-09 17:26   回复 1231137268748521472
    • 老实本分的读书人  回复 @码划云
      好的,多谢啦!
      老实本分的读书人 2022-03-09 17:30   回复 1501022769779838977
  • SD卡是这个路径?

    1153952789488054272  评论     打赏       拉大锯
    • 老实本分的读书人  回复 @拉大锯
      老师我的storage目录下没有sdcard这个文件夹怎么办😭storage目录下面只有0DF8-3405 、emulated 、self这三个文件夹
      老实本分的读书人 2022-03-09 16:11   回复 1501022769779838977
    • 老实本分的读书人  回复 @拉大锯
      如果路径直接写File filePath = new File("/storage/sdcard");的话就会报错(No such file or directory)
      老实本分的读书人 2022-03-09 16:19   回复 1501022769779838977
相关问题
deanhu · AOSP
2024-04-25 21:53 2 10
幻影~ · 提问
2024-04-13 20:13 10 2
幻影~ · 找工作
2024-04-07 10:44 16 2
幻影~ · 问题
2024-03-31 17:20 7 2
TONYGFX · AOSP
2024-03-28 17:11 4 2