gpt4 book ai didi

java - Android:空指针异常(文件)

转载 作者:行者123 更新时间:2023-12-01 11:12:21 25 4
gpt4 key购买 nike

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

// 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 引起的,但我不明白为什么会出现此错误,因为它会获取正确目录中的文件,而我在该目录中有文件...

E

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 javadoc,我们可以在listFiles方法返回中看到以下描述:

Returns: An array of abstract pathnames denoting the files and directories in the directory denoted by this abstract pathname. The array will be empty if the directory is empty. Returns null if this abstract pathname does not denote a directory, or if an I/O error occurs.

您的路径似乎无效。

关于java - Android:空指针异常(文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32208493/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com