【发布时间】:2023-03-09 19:48:01
【问题描述】:
我使用以下内容检查目录是否存在,如果不存在则创建它
final String appPath = String.format("%s/DataFiles", Environment.getExternalStorageDirectory());
File f = new File(appPath);
if(f.exists() && f.isDirectory()){
Toast.makeText(getBaseContext(), "Exists", Toast.LENGTH_LONG).show();
}else{
Toast.makeText(getBaseContext(), "DOES NOT Exist", Toast.LENGTH_LONG).show();
f.mkdir();
这在我插入了 SD 卡的 S3 上运行良好
当我在另一部没有 sd 卡的手机上尝试时,它识别出目录不存在,然后不创建目录
任何想法有什么问题
标记
顺便说一句,我尝试插入 sd 卡,但没有任何区别,它仍然没有创建目录。
【问题讨论】:
-
你用过哪款手机?
-
有些不同:你的 if/else 不完整,因为它可能存在并且是一个文件。所以你必须再添加一个。此外,您最好使用
f.getParentFile().canWrite()进行测试。 -
我已经将它安装在 Galaxy s3 和 samsung tab 3 上,并且运行良好的 jellybean 尝试安装在运行 kitkat 的 moto E 上,但它不会创建目录。设置写权限可以,如果目录存在则检测良好,但如果不存在则不会创建目录。如果我向 apppath 敬酒,它会说它的 emulated/storage/0/
-
我还从 S3 和 Tab3 中移除了 sd 卡,它完美适用于 moto E