Java文件列表:使用for循环时的NPE

Java文件列表:使用for循环时的NPE,java,linux,nullpointerexception,filepath,Java,Linux,Nullpointerexception,Filepath,我已经编写了简单的java代码,在Linux中显示文件列表,并使用TCPI将其用于FTP程序。我将逐步使用所有功能。我在谷歌搜索了大约半个小时后发布了这个问题 import java.io.*; class FileList { public static void main(String args[]) { String dirname="/home/vaibhav/Test"; File f1=new File(dirname); String sl[]=f1.list(); System.

我已经编写了简单的java代码,在Linux中显示文件列表,并使用TCPI将其用于FTP程序。我将逐步使用所有功能。我在谷歌搜索了大约半个小时后发布了这个问题

import java.io.*;
class FileList
{
public static void main(String args[])
{
String dirname="/home/vaibhav/Test";
File f1=new File(dirname);
String sl[]=f1.list();
System.out.print(f1.list()+"......."+sl.length+" files found.");
for(int i=0;i<sl.length;i++)
{ 
System.out.print(sl[i]+" ");
}      
}
}
我的目录测试和Java内容:

vaibhav@vaibhav-VirtualBox:~$ cd /home/vaibhav/Test
vaibhav@vaibhav-VirtualBox:~/Test$ dir
1  2
vaibhav@vaibhav-VirtualBox:~/Test$ ls -al
total 8
drwxrwxrwx  2 vaibhav vaibhav 4096 Jan 18 15:04 .
drwxr-xr-x 25 vaibhav vaibhav 4096 Jan 18 16:50 ..
-rw-rw-rw-  1 vaibhav vaibhav    0 Jan 18 15:04 1
-rw-rw-rw-  1 vaibhav vaibhav    0 Jan 18 15:04 2
vaibhav@vaibhav-VirtualBox:~/Test$ cd
vaibhav@vaibhav-VirtualBox:~$ cd /home/vaibhav/Java
vaibhav@vaibhav-VirtualBox:~/Java$ ls -al
total 20
drwxr-xr-x  2 vaibhav vaibhav 4096 Jan 18 16:52 .
drwxr-xr-x 25 vaibhav vaibhav 4096 Jan 18 16:50 ..
-rw-r--r--  1 vaibhav vaibhav  990 Jan 18 16:52 FileList.class
-rw-r--r--  1 vaibhav vaibhav  477 Jan 18 16:52 FileList.java
-rw-r--r--  1 vaibhav vaibhav  487 Jan 18 16:52 FileList.java~
当我将字符串dirname更改为/home/vaibhav/Java(也是pwd)时,程序执行得很好

问题是什么? 谢谢。

最好试试这个:

File folder = new File("your/path");
File[] listOfFiles = folder.listFiles();

    for (int i = 0; i < listOfFiles.length; i++) {
      if (listOfFiles[i].isFile()) {
        System.out.println("File " + listOfFiles[i].getName());
      } else if (listOfFiles[i].isDirectory()) {
        System.out.println("Directory " + listOfFiles[i].getName());
      }
    }

希望这对您有所帮助

因为环线是10Mmmh线。。。我对此表示怀疑,为什么我们不能从印刷品中获得输出。我认为sl是空的。什么使f1.isDirectory.no,sl不是null。在运行代码之前,我向它添加了2个文件。它与pwd有关吗?我在这里发布之前也尝试过。但是一篇帖子说使用列表比使用列表文件要好。我的主要问题是,当我将字符串dirname更改为/home/vaibhav/Java(也是pwd)时,程序执行得很好。您能否更清楚地解释一下@VALTo显示来自…/Test dir的文件列表的具体要求是什么@Santhoshkumar544所以我发布的答案肯定会显示来自您所需路径的文件列表,还包括目录@VALyeah,我不知道为什么之前没有显示它!这就是我把它贴在这里的原因。现在,在多次更改dirname后,它运行良好。
File folder = new File("your/path");
File[] listOfFiles = folder.listFiles();

    for (int i = 0; i < listOfFiles.length; i++) {
      if (listOfFiles[i].isFile()) {
        System.out.println("File " + listOfFiles[i].getName());
      } else if (listOfFiles[i].isDirectory()) {
        System.out.println("Directory " + listOfFiles[i].getName());
      }
    }