[ https://issues.apache.org/jira/browse/NET-349?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12980291#action_12980291 ]
Max edited comment on NET-349 at 1/11/11 2:53 PM: -------------------------------------------------- One solution: Modify UnixFTPEntryParser.java: private static final String REGEX = "+(?s)+([bcdelfmpSs-])" Modify FTPFileEntryParserImpl.java: public String readNextEntry(BufferedReader reader) throws IOException { -return reader.readLine();- +String entry = reader.readLine();+ +String line = null;+ +do+ +{+ +reader.mark(256);+ +line = reader.readLine();+ +if(line == null || line.equals("") || matches(line))+ +{+ +reader.reset();+ +line = null;+ +break;+ +}+ +else+ +{+ +entry += "\n"+line;+ +}+ +} while(StringUtils.isNotBlank(line));+ +return entry;+ } In this case listing comes through just fine. Deletion however is not possible, since servers do not support deletion of file names with special characters. was (Author: maxf): One solution: Modify UnixFTPEntryParser.java: private static final String REGEX = "+(?s)+([bcdelfmpSs-])" Modify FTPFileEntryParserImpl.java: public String readNextEntry(BufferedReader reader) throws IOException { -return reader.readLine();- +String entry = reader.readLine();+ +String line = null;+ +do+ +{+ +reader.mark(256);+ +line = reader.readLine();+ +if(line == null || line.equals("") || matches(line))+ +{+ +reader.reset();+ +line = null;+ +break;+ +}+ +else+ +{+ +entry += "\n"+line;+ +}+ +} while(StringUtils.isNotBlank(line));+ +return entry;+ } > FTPClient.listFiles() returns a file entry containing a new line character > only up to the new line character > ------------------------------------------------------------------------------------------------------------ > > Key: NET-349 > URL: https://issues.apache.org/jira/browse/NET-349 > Project: Commons Net > Issue Type: Bug > Components: FTP > Affects Versions: 2.2 > Environment: Linux localhost 2.6.9-22.ELsmp #1 SMP Mon Sep 19 > 18:32:14 EDT 2005 i686 i686 i386 GNU/Linux > RedHat Enterprise Linux > Reporter: Max > Priority: Minor > > Create 3 files > File with new lines: > echo > 'test > line1 > line2 > line3.txt' > 2 files without: > echo > test1 > echo > testz > connect via ftpclient to the server containing these files, switch to that > directory and call listFiles(). > The file with new lines will return as test and trailing components of the > path will be missing. > FTPFileEntryParserImpl.readNextEntry() is using BufferedReader.readLine() to > identify the end of the entry. May be some other approach is needed to > identify the end of the entry, since file names with new lines although > undesired, are actually valid in unix environments. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.