Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 无法从sd卡读取目录或文件_Android_Android Sdcard - Fatal编程技术网

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)

我是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) {
        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>