You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-dev@hadoop.apache.org by "Sowmya Ramesh (JIRA)" <ji...@apache.org> on 2015/03/12 19:39:38 UTC
[jira] [Created] (HDFS-7921) FileSystem listFiles doesn't list the
directories if recursive is false
Sowmya Ramesh created HDFS-7921:
-----------------------------------
Summary: FileSystem listFiles doesn't list the directories if recursive is false
Key: HDFS-7921
URL: https://issues.apache.org/jira/browse/HDFS-7921
Project: Hadoop HDFS
Issue Type: Bug
Affects Versions: 2.5.0
Reporter: Sowmya Ramesh
Below code, lists only files and not dirs if recursive is set to false. If recursive is set to true list all dirs and files. If recursive is set to false it should behave similar to hadoop fs -ls <path> which is not the case.
{code}
FileSystem fs = FileSystem.get(uri, conf);
RemoteIterator<LocatedFileStatus> fileStatusListIterator = fs.listFiles(new Path("/tmp"), false);
while(fileStatusListIterator.hasNext()) {
LocatedFileStatus fileStatus = fileStatusListIterator.next();
System.out.println("Path: " + fileStatus.getPath());
}
Test results :
Path: hdfs://240.0.0.10:8020/tmp/idtest.hadoopqe.580215.29151.in
Path: hdfs://240.0.0.10:8020/tmp/idtest.hadoopqe.580215.29151.pig
[root@node-1 hive-repl-recipe]# hadoop fs -ls /tmp
Found 4 items
drwx-wx-wx - hadoopqe hdfs 0 2015-03-02 17:52 /tmp/hive
drwxr-xr-x - hadoopqe hdfs 0 2015-03-02 17:51 /tmp/id.out
-rw-r--r-- 3 hadoopqe hdfs 2605 2015-03-02 17:58 /tmp/idtest.hadoopqe.580215.29151.in
-rw-r--r-- 3 hadoopqe hdfs 159 2015-03-02 17:58 /tmp/idtest.hadoopqe.580215.29151.pig
{code}
Is this the intended behavior? It is weird just to list files and not the directories if recursive is set to false.
If listStatus should be used instead can we make listFiles API deprecated?
Thanks!
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)