试图列出从内部SD卡机器人的所有文件夹/文件,但得到一个空 [英] Trying to list all folders/files from internal sdcard android but get a null

查看:146
本文介绍了试图列出从内部SD卡机器人的所有文件夹/文件,但得到一个空的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图让我的外部存储的所有文件的清单,但总是回来空。

 如果(Environment.getExternalStorageDirectory()存在()){
        Log.i(FILE,不为空);        文件[] =文件Environment.getExternalStorageDirectory()listFiles()。        对于(文件文件:文件){
            Log.i(文件,file.getAbsolutePath());
        }
    }

我如何让它列出来自外部目录中的所有文件

我得到一个异常

 产生的原因:显示java.lang.NullPointerException
                                                                                  在com.example.sam.read.fragments.MyFragment.onCreate(MyFragment.java:138)
                                                                                  在android.support.v4.app.Fragment.performCreate(Fragment.java:1763)
                                                                                  在android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:913)
                                                                                  在android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1126)
                                                                                  在android.support.v4.app.BackStackRecord.run(BackStackRecord.java:739)
                                                                                  在android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1489)
                                                                                  在android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:548)
                                                                                  在android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1164)
                                                                                  在android.app.Activity.performStart(Activity.java:5114)
                                                                                  在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2153)
                                                                                  在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
                                                                                  在android.app.ActivityThread.access $ 600(ActivityThread.java:141)
                                                                                  在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1234)
                                                                                  在android.os.Handler.dispatchMessage(Handler.java:99)
                                                                                  在android.os.Looper.loop(Looper.java:137)
                                                                                  在android.app.ActivityThread.main(ActivityThread.java:5041)
                                                                                  在java.lang.reflect.Method.invokeNative(本机方法)
                                                                                  在java.lang.reflect.Method.invoke(Method.java:511)
                                                                                  在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:793)
                                                                                  在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
                                                                                  在dalvik.system.NativeStart.main(本机方法)


解决方案

空指针大概是从即将到来的(文件文件:文件),原因是文件

从文档 listFiles()将返回null如果指定的路径是不是一个目录;它不会告诉你的是,如果你有一个文件系统权限问题,您将最有可能还可以得到这个值。

 如果(Environment.getExternalStorageDirectory()存在())

你有没有在你的清单中定义所需的权限?

 <使用许可权的android:NAME =android.permission.READ_EXTERNAL_STORAG​​E/>

如果这不是问题,那么我唯一想到的是,文件的,或行 138 是不是在这个片段。

I am trying to make a list of all the files in my external storage but always comes back null.

if (Environment.getExternalStorageDirectory().exists()) {
        Log.i(FILE, "is not empty");

        File[] files = Environment.getExternalStorageDirectory().listFiles();

        for (File file : files) {
            Log.i("File ", file.getAbsolutePath());
        }
    }

How do I make it list all the files from the external directory

I get an exception

Caused by: java.lang.NullPointerException
                                                                                  at com.example.sam.read.fragments.MyFragment.onCreate(MyFragment.java:138)
                                                                                  at android.support.v4.app.Fragment.performCreate(Fragment.java:1763)
                                                                                  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:913)
                                                                                  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1126)
                                                                                  at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:739)
                                                                                  at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1489)
                                                                                  at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:548)
                                                                                  at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1164)
                                                                                  at android.app.Activity.performStart(Activity.java:5114)
                                                                                  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2153)
                                                                                  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 
                                                                                  at android.app.ActivityThread.access$600(ActivityThread.java:141) 
                                                                                  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 
                                                                                  at android.os.Handler.dispatchMessage(Handler.java:99) 
                                                                                  at android.os.Looper.loop(Looper.java:137) 
                                                                                  at android.app.ActivityThread.main(ActivityThread.java:5041) 
                                                                                  at java.lang.reflect.Method.invokeNative(Native Method) 
                                                                                  at java.lang.reflect.Method.invoke(Method.java:511) 
                                                                                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
                                                                                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
                                                                                  at dalvik.system.NativeStart.main(Native Method) 

解决方案

The NullPointer is probably coming from for (File file : files), reason being that files is null.

From the documentation, listFiles() will return null if the specified path is not a directory; what it does not tell you is that you will most likely also get this value if you have a FileSystem permissions issue.

if ( Environment.getExternalStorageDirectory().exists() )

Do you have the required permissions defined in your manifest?

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

If this is not the issue, then my only thought is that FILE is null, or line 138 is not in this snippet.

这篇关于试图列出从内部SD卡机器人的所有文件夹/文件,但得到一个空的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆