项目需要在外部存储中新建立文件夹,部分代码如下:
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的平板
帖子终结吧,我发现问题了,权限设置里面我写成了。。谢谢各位帮忙啦。
权限打错了字,为什么不报错么..