为什么FTP列表中的每个目录都有一个“点”项

时间:2015-03-17 13:29:51

标签: java ftp apache-commons-net

我正在使用(Apache Commons)创建一个加载FTP服务器的文件和文件夹的JTree。 我使用此方法加载特定目录的文件:

FTPFile[] innerFiles = ftp.listFiles();

我注意到,对于任何目录,innerFiles [0].innerFiles [1].. 从innerFiles [2]开始查看很容易忽略它们,但我只是想知道这些保留项目是什么,如果忽略它们会产生任何问题吗?

2 个答案:

答案 0 :(得分:2)

这些文件代表当前目录(.)及其上方的目录(..)。在创建显示所有文件和目录的树结构时,应忽略这些。

您可以指定一个FTPFileFilter来删除它们。

答案 1 :(得分:0)

您可以忽略它们。这是列出所有实际文件的实现,而忽略了两个dot

ftp.listFiles(remoteFilePath, file ->
{
    val filePath = file.getName();
    return !(filePath.equals(".") || filePath.equals(".."));
});

这似乎比从索引2开始更合适。