commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sebb (Issue Comment Edited) (JIRA)" <j...@apache.org>
Subject [jira] [Issue Comment Edited] (NET-449) listFiles bug with folder that begins with "-"
Date Mon, 05 Mar 2012 17:51:59 GMT

    [ https://issues.apache.org/jira/browse/NET-449?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13222468#comment-13222468
] 

Sebb edited comment on NET-449 at 3/5/12 5:51 PM:
--------------------------------------------------

Not sure there's anything Net can do about this.

The parameter to the LIST command is supposed to be a pathname, and it is up to the server
to determine if it is a file or a directory.

However, the "-" prefix is used by some servers for supporting qualifiers, e.g. -a, -l

This obviously has the potential to be confused with a valid pathname.

If the server fails to recognise "-data" as a pathname, then it seems to me that this is a
bug in the server.
It ought to behave according to the RFCs.
                
      was (Author: sebb@apache.org):
    Not sure there's anything Net can do about this.

The parameter to the LIST command is supposed to be a pathname, and it is up to the server
to determine if it is a file or a directory.

The "-" prefix is used by some servers for supporting qualifiers, e.g. -a.

I don't think there is any way to "escape" the leading "-", at least not one that would work
on all servers.
The parameter "./-data" would probably work on most FTP servers, but AFAIK servers don't have
to support that, and some may not do so.
                  
> listFiles bug with folder that begins with "-"
> ----------------------------------------------
>
>                 Key: NET-449
>                 URL: https://issues.apache.org/jira/browse/NET-449
>             Project: Commons Net
>          Issue Type: Bug
>          Components: FTP
>    Affects Versions: 3.1
>            Reporter: Stéphane Verger
>
> FTP Server status:
> {code}
> root@xxx-srv:/data/Library# tree -A
> .
> ├── -dash
> │   ├── -dash.txt
> │   ├── file1.txt
> │   └── file2.txt
> └── test
>     ├── file2.txt
>     └── file.txt
> {code}
> Test code:
> {code} 
> final org.apache.commons.net.ftp.FTPClient ftp = new org.apache.commons.net.ftp.FTPClient();
> 		    ftp.connect(host, port);
> 		    ftp.login(login, pwd);
> 		    
> 		    System.out.println("PWD: " + ftp.printWorkingDirectory());
> 		    final FTPFile[] listFiles = ftp.listFiles();
> 		    for (int i = 0; i < listFiles.length; i++) {
> 		        System.out.println("[" + i + "] " + listFiles[i]);
> 		    }
> 		    
> 		    System.out.println("Files in /-dash");
> 		    final FTPFile[] listFiles2 = ftp.listFiles("/-dash");
> 		    for (int i = 0; i < listFiles2.length; i++) {
> 		        System.out.println("[" + i + "] " + listFiles2[i]);
> 		    }
> 		    
> 		    System.out.println("Files in -dash");
> 		    final FTPFile[] listFiles3 = ftp.listFiles("-dash");
> 		    for (int i = 0; i < listFiles3.length; i++) {
> 		        System.out.println("[" + i + "] " + listFiles3[i]);
> 		    }
> {code} 
> results:
> {code} 
> PWD: /
> [0] -dash
> [1] test
> Files in /-dash
> [0] -dash.txt
> [1] file1.txt
> [2] file2.txt
> Files in -dash
> [0] -dash
> [1] .
> [2] ..
> [3] test
> {code} 
> When listing "-dash", it list the current directory instead of the destination one.
> If I do the same test with the folder test, this time it works as expected.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

Mime
View raw message