繁体   English   中英

Android:NullPointer异常(文件)

[英]Android: NullPointer Exception (files)

我正在尝试制作一个应用,为此,我需要列出文件。 我找到了一些有用的代码,并根据自己的需要对其进行了一些调整。 这是我的(简单)代码:

// List all files from specific directory
    public void listFiles(){

        // Path to directory to scane
        String path = Environment.getExternalStorageDirectory().toString()+"/Download/";

        // New file-instance
        File f = new File(path);

        // Get the textview to display message
        TextView textview = (TextView) findViewById(R.id.textView);

        textview.setText(f.toString());

        // List the files
        File file[] = f.listFiles();

        for(int i = 0; i < file.length; i++){
            Log.d("Files", "Filename: " + file[i].getName());
        }
    }

我知道这是由我的for循环中的file.length引起的,但是我不明白为什么会收到此错误,因为它会在正确的目录中获取文件,并且该目录中有文件...

Ë

dit: This is my stack trace

java.lang.NullPointerException: Attempt to get length of null array
            at com.example.filemaker.MainActivity.listFiles(MainActivity.java:79)
            at com.example.filemaker.MainActivity$1.onClick(MainActivity.java:31)
            at android.view.View.performClick(View.java:4780)
            at android.view.View$PerformClick.run(View.java:19866)
            at android.os.Handler.handleCallback(Handler.java:739)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5257)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

那么什么线使NPE呢? file.length? 这意味着file为空,查看File javadoc,我们可以在listFiles方法return中看到以下描述:

返回:抽象路径名数组,表示该抽象路径名表示的目录中的文件和目录。 如果目录为空,则数组为空。 如果此抽象路径名不表示目录 ,或者发生I / O错误,则返回null

您的路径似乎无效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM