Android 无法从sd卡读取目录或文件
我是android开发新手,我曾尝试从sd卡中读取目录,但没有成功。下面是我为实现它而编写的代码Android 无法从sd卡读取目录或文件,android,android-sdcard,Android,Android Sdcard,我是android开发新手,我曾尝试从sd卡中读取目录,但没有成功。下面是我为实现它而编写的代码 File sdcard = Environment.getExternalStorageDirectory(); if(sdcard.exists()) { Log.d("Sd card", "Sd card exist"); File[] file_names = sdcard.listFiles(); for(File x : file_names)
File sdcard = Environment.getExternalStorageDirectory();
if(sdcard.exists()) {
Log.d("Sd card", "Sd card exist");
File[] file_names = sdcard.listFiles();
for(File x : file_names) {
Log.d("File Name",x.getName());
}
}
控件传递了if条件,然后我在“for each”循环行中得到了一个NullPointerException。函数sdcard.listFiles()可能返回null。我有一张Sd卡,里面有很多文件夹和文件。实际上,我必须为sd卡上的目录“附件”创建一个目录文件对象。我还尝试了以下代码来实现相同的功能
File file = new File(android.os.Environment.getExternalStorageDirectory() + File.separator + "Attachments");
及
在调用函数file.exists()时,在这两个代码上,它都返回false
我还通过以下代码检查了sd卡是否已安装
String sdCardAvail = Environment.getExternalStorageState();
if(sdCardAvail.equals(Environment.MEDIA_MOUNTED))
Log.d("Card status", "Sd card Available");
上述代码已在log cat上打印“Sd卡可用”。
所以请帮我弄清楚我做的是正确的还是遗漏了什么
谢谢….要在外部存储器上读取或写入文件,您的应用程序必须获得
读取外部存储器
或写入外部存储器
系统权限。例如:
<manifest ...>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
...
</manifest>
...
如果同时需要读取和写入文件,则只需请求write\u EXTERNAL\u STORAGE
权限,因为它隐含地也需要读取访问权限
也看到这个。它将解决未来所有有关存储的问题。“我试图从sd卡中读取目录”——通常不是。除此之外,你在运行什么版本的Android?您的清单中是否有正确的
读取外部存储
或写入外部存储
权限?文件[]文件名=sdcard.listFiles()代码>。因此,文件名
可以为空。如果(file_names==null)不继续,请添加一条语句。
是,我没有在清单文件中提到权限。添加它和它的工作现在。感谢通用软件greenappsYeah它可以工作。。。。在清单文件中添加了权限,现在可以开始工作了。谢谢
<manifest ...>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
...
</manifest>