android 外部存储创建文件夹总是返回false的问题
android 外部存储创建文件夹总是返回false的问题
发布时间:2016-12-09 来源:查字典编辑
摘要:项目需要在外部存储中新建立文件夹,部分代码如下:if(Environment.getExternalStorageState().equal...

项目需要在外部存储中新建立文件夹,部分代码如下:

if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){

Filefile=newFile(Environment.getExternalStorageDirectory(),"Demo");//路径是/mnt/sdcard

booleanisCreate=file.mkdir();

Log.d("TAG",”isCreate="+isCreate);

}

manifest.xml中声明了权限如下:

在adbshell中查看所有文件:

D:workspaceZZTDemo>adbshell

error:morethanonedevice/emulatorD:workspaceZZTDemo>adbshell

root@android:/#cdsdcard

root@android:/sdcard#ls-al

drwxrwxr-xsystemsdcard_rw2016-08-2404:14.BD_SAPI_CACHE

drwxrwxr-xsystemsdcard_rw2016-12-0501:29.DataStorage

drwxrwxr-xsystemsdcard_rw2016-10-2410:23.UTSystemConfig

d---------rootroot2016-12-0600:37.android_secure

drwxrwxr-xsystemsdcard_rw2011-01-0210:36Alarms

drwxrwxr-xsystemsdcard_rw2011-01-0212:05Android

drwxrwxr-xsystemsdcard_rw2016-12-0501:29BaiduAsbe76b54f

drwxrwxr-xsystemsdcard_rw2016-12-0509:01CloudDrive

drwxrwxr-xsystemsdcard_rw2011-01-0210:36DCIM

drwxrwxr-xsystemsdcard_rw2016-08-2404:18Download

-rwxrwxr-xsystemsdcard_rw2822552014-08-2515:46EMserialportV2.0.apk

-rwxrwxr-xsystemsdcard_rw7917412014-08-1815:08Exhibition.apk

drwxrwxr-xsystemsdcard_rw2011-01-0210:35LOST.DIR

drwxrwxr-xsystemsdcard_rw2011-01-0210:36Movies

drwxrwxr-xsystemsdcard_rw2011-01-0210:36Music

drwxrwxr-xsystemsdcard_rw2011-01-0210:36Notifications

drwxrwxr-xsystemsdcard_rw2011-01-0210:36Pictures

drwxrwxr-xsystemsdcard_rw2011-01-0210:36Podcasts

drwxrwxr-xsystemsdcard_rw2011-01-0210:36Ringtones

drwxrwxr-xsystemsdcard_rw2016-09-1416:19SystemVolumeInformation

-rwxrwxr-xsystemsdcard_rw17133772016-10-1920:14app-debug.apk

drwxrwxr-xsystemsdcard_rw2016-08-2404:14backups

drwxrwxr-xsystemsdcard_rw2016-08-2404:19baidu

drwxrwxr-xsystemsdcard_rw2016-07-2808:49bluetooth

-rwxrwxr-xsystemsdcard_rw02016-08-2404:14com.baidu.appsearch.log

-rwxrwxr-xsystemsdcard_rw02016-12-0600:37com.baidu.appsearch.log.lck

-rwxrwxr-xsystemsdcard_rw70435112016-09-1420:17data.txt

-rwxrwxr-xsystemsdcard_rw114152016-09-1418:49data2.txt

drwxrwxr-xsystemsdcard_rw2011-01-0210:38external_sdcard

drwxrwxr-xsystemsdcard_rw2016-12-0508:34zzt

可以看到文件夹并未创建,打印的Log中显示mkdir()返回值一直是false。

使用context.getExternalFilesDir(null)创建文件夹也会返回false。

回复讨论(解决方案)

这个问题,首先,你需要确定你的外部存储是否只有一个,其次,你输出一下file的路径信息,最后你修改下mddirs();使用这个方法尝试一下

设备只有一个外部存储;

输出外置存储和file的信息如下:

12-0607:25:27.3901873-1873/?D/SYS:Environment.getExternalStorageState()=mounted

12-0607:25:27.3901873-1873/?D/SYS:file.getAbsolutePath()=/mnt/sdcard/Demo.txt

mkdir和mkdirs创建根目录下的单层和多层都试过了,都无法创建

手机是否为6.0以上系统,是的话需要手动请求权限;另外,新建文件夹请用mkdirs()。

不是6.0系统,是个4.2.2的平板

帖子终结吧,我发现问题了,权限设置里面我写成了。。谢谢各位帮忙啦。

权限打错了字,为什么不报错么..

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新安卓软件开发学习
热门安卓软件开发学习
编程开发子分类