我试图列出内部和外部存储中存在的jpg文件,下面的代码在使用Environment.getRootDirectory()时有效,但是当使用Environment.getExternalStorageDirectory()时,它什么都没有,而且没有工作。< / p>
OnCreate:我添加了以下电话:
walkdir(Environment.getExternalStorageDirectory());
以下是列出文件的空白:
public void walkdir(File dir) {
TextView tv=(TextView)findViewById(R.id.tv_data);
int count=0;
File[] listFile;
listFile = dir.listFiles();
if (listFile != null) {
for (int i = 0; i < listFile.length; i++) {
if (listFile[i].isDirectory()) {
walkdir(listFile[i]);
} else {
if (listFile[i].getName().toLowerCase().endsWith(".jpg")){
tv.setText(tv.getText().toString()+"\n"+listFile[i].toString());
}
}
}
}
}
在Manifest中:我添加了这些权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
请任何人都可以告知为什么代码使用getRootDirectory()而不使用getExternalStorageDirectory()
答案 0 :(得分:0)
可能是因为您没有添加代码来请求用户确认您在清单中请求的读写权限。
Google获得运行时权限。