【问题标题】:list files names in a ftp server's file列出 ftp 服务器文件中的文件名
【发布时间】:2017-09-22 18:36:56
【问题描述】:

我想列出位于 ftp 服务器中的目录中的文件,但我有一些错误,例如:

drwxrwxrwx    3 1004     1004         4096 Jan 17  2017 ftp
Exception in thread "main" java.lang.NullPointerException

我的代码:

URL url = new URL("ftp://username:pass@hostname:port");
URLConnection urlConnection = url.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null){
    System.out.println(inputLine);
}

File cur = new File("/ftp/files/assignment/");
getAllFiles(cur);}}
}

public static void getAllFiles(File curDir){
    long len = 0;
    long time = curDir.lastModified();
    File[] filesList = curDir.listFiles();
    for(File f : filesList){
        len += f.length();
        if(f.isDirectory())
        {
            System.out.println(f.getName() + " " + len + " " + time);
        }
        if(f.isFile()){
            System.out.println(f.getName() + " " + len + " " + time);
        }
    }
}

【问题讨论】:

  • 请添加堆栈跟踪
  • 什么是堆栈跟踪
  • 程序运行并遇到异常时通常生成的列表。
  • 它有行号告诉异常发生的位置。
  • 通常打印到控制台。如果您从 IDE 运行程序,它应该在那里可见 - 除非您已重定向标准输出并出错。

标签: java eclipse file ftp


【解决方案1】:

File 仅适用于 local 文件,不适用于远程 FTP 服务器上的文件,并且您的本地计算机上不存在 /ftp/files/assignment/(因此 listFiles() 返回 null 会导致您的 for-循环崩溃)。

来自https://docs.oracle.com/javase/7/docs/api/java/io/File.html#listFiles() - “如果此抽象路径名不表示目录,或者发生 I/O 错误,则返回 null。

【讨论】:

    猜你喜欢
    • 2015-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-29
    • 1970-01-01
    相关资源
    最近更新 更多