Code Bye

读取sdcard内容问题

为什么下面代码,不能实现输出目标目录下的文件名字啊。
File file = new File("mnt/sdcard");
		String[] names = file.list();
		for(String temp:names){
			System.out.println(temp);
		}

names 是一个 null
加过权限
<uses-permission android:name=”android.permission.READ_EXTERNAL_STORAGE”/>
<uses-permission android:name=”android.permission.WRITE_EXTERNAL_STORAGE”/>

解决方案

13

目录不存在……
获取sd卡目录不要用这个固定的,每个手机都不一样的。用Environment.getExternalStorageDirectory()

12

引用:
Quote: 引用:

Android 用System.out是看不见输出的。
首先修改代码:
System.out.println(temp);改成Log,d(“Mytest”,temp);
用log的形式查看,至于怎么看这个Log,假如你用Android Studio 的话,直接看左下角Andorid Mointor,输入关键词:”Mytest”,假如没有As,Eclipse也可以通过monitor来看。


程序报错的,就提示 names是一个Null,证明 file.list();没有返回结果啊

确实,针对楼上的,SD卡的位置不要写死,原因是原因是不同厂商对不同的SD卡名称不同。android常见的SD卡存储位置
/storage/emulated/0/
/storage/extSdCard
/mnt/external_sd/
/mnt/sdcard2/
/mnt/sdcard/external_sd/
/mnt/sdcard-ext/
/mnt/sdcard/
/storage/sdcard0/
/mnt/extSdCard/
/mnt/extsd/
/mnt/emmc/
/mnt/extern_sd/
/mnt/ext_sd/
/mnt/ext_card/
/mnt/_ExternalSD/
/sdcard2/
/sdcard/
/sdcard/sd/
/sdcard/external_sd/
/mnt/sd/
/mnt/
/storage/
/mnt/sdcard/sd/
/mnt/exsdcard/
/mnt/sdcard/extStorages/SdCard/
/ext_card/
/storage/extSdCard

5

File file = new File(“mnt/sdcard”);
改成
File file = new File(“/mnt/sdcard”);假如你的sd卡是在这个目录下的话
少一个“/”的意义就不一样的,不带”/”是从当前目录开始,带的话就是从根目录开始了。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明读取sdcard内容问题