好的,快速提醒我是Android编程的新手。 我对uni的java有非常基本的经验。 我最近一直在为我的三星Galaxy Tab安装android studio和app。 很抱歉,如果之前有人询问过,但我看不到它。
我试图创建一个显示SD卡上所有文件名称的应用程序。就在顶层。我只用了一个按钮和一个文本视图来创建一个快速界面(我离开单个文本视图不会显示列表但有问题,但无论如何我都去了)
最终得到以下代码。
*public void ShowFolder(View view){
TextView test = (TextView)findViewById(R.id.View);
root = new File(Environment.getRootDirectory().toString());
File[] Files;
Files = root.listFiles();
String[] File_List;
File_List = root.list();*
然后我使用调试器运行它以查看最终在两个数组列表中的内容。 我将此代码运行了三次,但将“Environment.getRootDirectory”更改为“getExternalStorageDirectory()”和“getDataDirectory()”。
只有getRootDirectory版本会返回任何内容。在其他两个实例中,调试器对Files和Files_list都显示NULL。 我知道它们是有效的位置,因为使用那些命令然后输出到字符串,我可以使用文件浏览器手动在平板电脑上找到它。
所以,简单地说,为什么这三个选项都没有返回文件列表? 我首先想到它的权限,但我不确定如何确认这一点。
(对不起,长篇文章)
答案 0 :(得分:1)
请勿使用toString()
创建File
。 getRootDirectory()
已经返回File
个对象。
尝试这样的事情:
File root = Environment.getRootDirectory();
String[] rootList = root.list();
File[] rootListFiles = root.listFiles();
您还需要获得READ_EXTERNAL_STORAGE
权限,如getExternalStorageDirectory()