【问题标题】:How to read a Subdirectory from External Storage with getExternalStorageDirectory()如何使用 getExternalStorageDirectory() 从外部存储中读取子目录
【发布时间】:2019-09-13 07:40:49
【问题描述】:

我正在开发一个应该从外部存储读取文件并将它们显示在列表视图中的 Android 应用程序;在外部存储上创建子目录工作正常。问题是从外部存储的子目录中读取,我还没有弄清楚如何解决这个问题。 Listview 显示外部存储的所有子目录,我只想在一个特定的子目录中显示内容。问题在于将字符串“转换”为文件对象,这显然是不可能的。我真的需要为此打开一个 FileInputStream 吗?任何帮助或提示将不胜感激。

我尝试将子目录作为字符串附加到 Environment.getExternalStorageDirectory() 方法,如下所示: Environment.getExternalStorageDirectory() + "/Audio";

mTextMessage = findViewById(R.id.message);
BottomNavigationView navigation = findViewById(R.id.navigation); 
navigation.setOnNavigationItemSelectedListener
(mOnNavigationItemSelectedListener);
mListView = (ListView) findViewById(R.id.listView1);
file = Environment.getExternalStorageDirectory() + "/Audio";
fileNameList = getFileListfromSDCard();
mAdapter = new FlAdapter(this, R.layout.fl_list_item, fileNameList);
mListView.setAdapter(mAdapter);

错误信息:

错误:不兼容的类型:字符串无法转换为文件

【问题讨论】:

  • 也许可以试试:file = new File(Environment.getExternalStorageDirectory() + "/Audio");

标签: android android-listview android-file android-fileprovider


【解决方案1】:

因为getExternalStorageDirectory()返回String,你需要先将其转换为文件,然后再分配给文件。 你可以这样试试。

File file = new File(Environment.getExternalStorageDirectory()+"/Audio");

【讨论】:

  • 到目前为止谢谢 - 我在将其分配给文件之前已将其转换为文件,现在我收到以下错误消息:原因:java.lang.NullPointerException:尝试调用虚拟方法'java.io .File[] java.io.File.listFiles()' 在 gmbh.webagenten.tunelizer.ListActivity.getFileListfromSDCard 的空对象引用上
  • 您能否确保指定的路径存在并检查区分大小写,例如 /Audio 或 /audio
猜你喜欢
  • 1970-01-01
  • 2019-06-20
  • 1970-01-01
  • 2012-01-12
  • 1970-01-01
  • 2016-03-05
  • 1970-01-01
  • 2015-04-11
相关资源
最近更新 更多