Hello,
I'm trying to download files in subdirectories from an ftp server with ant.
The exact set of files is known.
Some of them are in subdirectories.
Ant only seems to download the ones in the root directory.
It does work if I download all files without listing them.
The first ftp action should do the exact same thing as the second.
Instead it complains about "Hidden files" and seems to prefix the paths with "\\".
Does anyone know what's wrong here?
Is this a bug in commons-net?
build.xml
<?xml version="1.0" encoding="utf-8"?>
<project name="example" default="example" basedir=".">
<taskdef name="ftp"
classname="org.apache.tools.ant.taskdefs.optional.net.FTP" />
<target name="example">
<!-- 2 files retrieved -->
<ftp action="get" verbose="true"
server="localhost" userid="example" password="example">
<fileset dir="downloads" casesensitive="false"
includes="root1.txt,root2.txt,a/a.txt,a/b/ab.txt,c/c.txt" />
</ftp>
<!-- 5 files retrieved -->
<ftp action="get" verbose="true"
server="localhost" userid="example" password="example">
<fileset dir="downloads" casesensitive="false"
includes="**/*" />
</ftp>
</target>
</project>
run_ant.bat
@ECHO OFF
PUSHD %~dp0
SET CLASSPATH=
SET ANT_HOME=C:\apache-ant-1.8.0
SET ant=%ANT_HOME%\bin\ant.bat
SET antoptions=-nouserlib -noclasspath -d
SET ftpjars=^
-lib lib\jakarta-oro-2.0.8.jar ^
-lib lib\commons-net-2.0.jar
CALL %ant% %antoptions% %ftpjars% > output.txt
POPD
output.txt
Unable to locate tools.jar. Expected to find it in C:\PROGRA~1\Java\jre6\lib\tools.jar
Apache Ant version 1.8.0 compiled on February 1 2010
Trying the default build file: build.xml
Buildfile: G:\ftp\build.xml
Adding reference: ant.PropertyHelper
Detected Java version: 1.6 in: C:\PROGRA~1\Java\jre6
Detected OS: Windows 7
Adding reference: ant.ComponentHelper
Setting ro project property: ant.file -> G:\ftp\build.xml
Setting ro project property: ant.file.type -> file
Adding reference: ant.projectHelper
Adding reference: ant.parsing.context
Adding reference: ant.targets
parsing buildfile G:\ftp\build.xml with URI = file:/G:/ftp/build.xml
Setting ro project property: ant.project.name -> example
Adding reference: example
Setting ro project property: ant.project.default-target -> example
Setting ro project property: ant.file.example -> G:\ftp\build.xml
Setting ro project property: ant.file.type.example -> file
Project base dir set to: G:\ftp
+Target:
+Target: example
Adding reference: ant.LocalProperties
parsing buildfile jar:file:/C:/apache-ant-1.8.0/lib/ant.jar!/org/apache/tools/ant/antlib.xml with URI = jar:file:/C:/apache-ant-1.8.0/lib/ant.jar!/org/apache/tools/ant/antlib.xml from a zip file
Class org.apache.tools.ant.taskdefs.optional.net.FTP loaded from parent loader (parentFirst)
Setting ro project property: ant.project.invoked-targets -> example
Attempting to create object of type org.apache.tools.ant.helper.DefaultExecutor
Adding reference: ant.executor
Build sequence for target(s) `example' is [example]
Complete build sequence is [example, ]
example:
[ftp] Opening FTP connection to localhost
[ftp] connected
[ftp] logging in to FTP server
[ftp] login succeeded
[ftp] getting files
fileset: Setup scanner in dir G:\ftp\downloads with patternSet{ includes: [root1.txt, root2.txt, a/a.txt, a/b/ab.txt] excludes: [] }
will try to cd to A where a directory called a exists
testing case sensitivity, attempting to cd to A
remote system is case sensitive : false
[ftp] Hidden file \\a\b\ assumed to not be a symlink.
filelist
map used in listing files
filelist
map used in listing files
[ftp] Hidden file \\a\b\ assumed to not be a symlink.
filelist
map used in listing files
filelist
map used in listing files
filelist
map used in listing files
filelist
map used in listing files
filelist
map used in listing files
[ftp] Hidden file \\a\a.txt assumed to not be a symlink.
filelist
map used in listing files
[ftp] Hidden file \\a\a.txt assumed to not be a symlink.
filelist
map used in listing files
filelist
map used in listing files
filelist
map used in listing files
[ftp] transferring root1.txt to G:\ftp\downloads\root1.txt
[ftp] File G:\ftp\downloads\root1.txt copied from localhost
[ftp] transferring root2.txt to G:\ftp\downloads\root2.txt
[ftp] File G:\ftp\downloads\root2.txt copied from localhost
[ftp] 2 files retrieved
[ftp] disconnecting
[ftp] Opening FTP connection to localhost
[ftp] connected
[ftp] logging in to FTP server
[ftp] login succeeded
[ftp] getting files
fileset: Setup scanner in dir G:\ftp\downloads with patternSet{ includes: [**/*] excludes: [] }
will try to cd to A where a directory called a exists
testing case sensitivity, attempting to cd to A
remote system is case sensitive : false
[ftp] transferring a\a.txt to G:\ftp\downloads\a\a.txt
[ftp] File G:\ftp\downloads\a\a.txt copied from localhost
[ftp] transferring a\b\ab.txt to G:\ftp\downloads\a\b\ab.txt
[ftp] File G:\ftp\downloads\a\b\ab.txt copied from localhost
[ftp] transferring c\c.txt to G:\ftp\downloads\c\c.txt
[ftp] File G:\ftp\downloads\c\c.txt copied from localhost
[ftp] transferring root1.txt to G:\ftp\downloads\root1.txt
[ftp] File G:\ftp\downloads\root1.txt copied from localhost
[ftp] transferring root2.txt to G:\ftp\downloads\root2.txt
[ftp] File G:\ftp\downloads\root2.txt copied from localhost
[ftp] 5 files retrieved
[ftp] disconnecting
BUILD SUCCESSFUL
Total time: 0 seconds
server log
(000153) 7/05/2010 19:46:12 - (not logged in) (127.0.0.1)> Connected, sending welcome message...
(000153) 7/05/2010 19:46:12 - (not logged in) (127.0.0.1)> 220-FileZilla Server version 0.9.34 beta
(000153) 7/05/2010 19:46:12 - (not logged in) (127.0.0.1)> 220-written by Tim Kosse (
[email protected])
(000153) 7/05/2010 19:46:12 - (not logged in) (127.0.0.1)> 220 Please visit http://sourceforge.net/projects/filezilla/
(000153) 7/05/2010 19:46:12 - (not logged in) (127.0.0.1)> USER example
(000153) 7/05/2010 19:46:12 - (not logged in) (127.0.0.1)> 331 Password required for example
(000153) 7/05/2010 19:46:12 - (not logged in) (127.0.0.1)> PASS *******
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 230 Logged on
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> TYPE I
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 200 Type set to I
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> PWD
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 257 "/" is current directory.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> SYST
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 215 UNIX emulated by FileZilla
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> PORT 127,0,0,1,207,232
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 200 Port command successful
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> LIST
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 150 Opening data channel for directory list.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 226 Transfer OK
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> PWD
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 257 "/" is current directory.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> CWD A
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 250 CWD successful. "/A" is current directory.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> CWD /
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 250 CWD successful. "/" is current directory.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> PWD
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 257 "/" is current directory.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> CWD /
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 250 CWD successful. "/" is current directory.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> PWD
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 257 "/" is current directory.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> CWD /
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 250 CWD successful. "/" is current directory.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> CWD a
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 250 CWD successful. "/a" is current directory.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> CWD b
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 250 CWD successful. "/a/b" is current directory.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> CWD //a/b
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 250 CWD successful. "/a/b" is current directory.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> PWD
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 257 "/a/b" is current directory.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> PORT 127,0,0,1,207,233
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 200 Port command successful
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> LIST
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 150 Opening data channel for directory list.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 226 Transfer OK
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> CWD /
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 250 CWD successful. "/" is current directory.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> PWD
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 257 "/" is current directory.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> PORT 127,0,0,1,207,234
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 200 Port command successful
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> LIST
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 150 Opening data channel for directory list.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 226 Transfer OK
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> CWD //\\a\b\
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 250 CWD successful. "/a/b" is current directory.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> PWD
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 257 "/a/b" is current directory.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> CWD /
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 250 CWD successful. "/" is current directory.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> PWD
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 257 "/" is current directory.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> CWD //\\a\b\
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 250 CWD successful. "/a/b" is current directory.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> PWD
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 257 "/a/b" is current directory.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> CWD /
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 250 CWD successful. "/" is current directory.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> CWD /
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 250 CWD successful. "/" is current directory.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> PWD
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 257 "/" is current directory.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> CWD /
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 250 CWD successful. "/" is current directory.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> PWD
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 257 "/" is current directory.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> CWD /
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 250 CWD successful. "/" is current directory.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> PWD
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 257 "/" is current directory.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> CWD /
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 250 CWD successful. "/" is current directory.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> CWD a
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 250 CWD successful. "/a" is current directory.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> CWD //a
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 250 CWD successful. "/a" is current directory.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> PWD
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 257 "/a" is current directory.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> PORT 127,0,0,1,207,235
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 200 Port command successful
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> LIST
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 150 Opening data channel for directory list.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 226 Transfer OK
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> CWD /
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 250 CWD successful. "/" is current directory.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> PWD
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 257 "/" is current directory.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> CWD /
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 250 CWD successful. "/" is current directory.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> PWD
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 257 "/" is current directory.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> CWD /
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 250 CWD successful. "/" is current directory.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> CWD /
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 250 CWD successful. "/" is current directory.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> PWD
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 257 "/" is current directory.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> CWD /
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 250 CWD successful. "/" is current directory.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> PWD
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 257 "/" is current directory.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> CWD /
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 250 CWD successful. "/" is current directory.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> PWD
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 257 "/" is current directory.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> CWD /
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 250 CWD successful. "/" is current directory.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> PORT 127,0,0,1,207,236
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 200 Port command successful
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> RETR root1.txt
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 150 Opening data channel for file transfer.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 226 Transfer OK
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> PORT 127,0,0,1,207,237
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 200 Port command successful
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> RETR root2.txt
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 150 Opening data channel for file transfer.
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 226 Transfer OK
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> QUIT
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> 221 Goodbye
(000153) 7/05/2010 19:46:12 - example (127.0.0.1)> disconnected.
(000154) 7/05/2010 19:46:12 - (not logged in) (127.0.0.1)> Connected, sending welcome message...
(000154) 7/05/2010 19:46:12 - (not logged in) (127.0.0.1)> 220-FileZilla Server version 0.9.34 beta
(000154) 7/05/2010 19:46:12 - (not logged in) (127.0.0.1)> 220-written by Tim Kosse (
[email protected])
(000154) 7/05/2010 19:46:12 - (not logged in) (127.0.0.1)> 220 Please visit http://sourceforge.net/projects/filezilla/
(000154) 7/05/2010 19:46:12 - (not logged in) (127.0.0.1)> USER example
(000154) 7/05/2010 19:46:12 - (not logged in) (127.0.0.1)> 331 Password required for example
(000154) 7/05/2010 19:46:12 - (not logged in) (127.0.0.1)> PASS *******
(000154) 7/05/2010 19:46:12 - example (127.0.0.1)> 230 Logged on
(000154) 7/05/2010 19:46:12 - example (127.0.0.1)> TYPE I
(000154) 7/05/2010 19:46:12 - example (127.0.0.1)> 200 Type set to I
(000154) 7/05/2010 19:46:12 - example (127.0.0.1)> PWD
(000154) 7/05/2010 19:46:12 - example (127.0.0.1)> 257 "/" is current directory.
(000154) 7/05/2010 19:46:12 - example (127.0.0.1)> SYST
(000154) 7/05/2010 19:46:12 - example (127.0.0.1)> 215 UNIX emulated by FileZilla
(000154) 7/05/2010 19:46:12 - example (127.0.0.1)> PORT 127,0,0,1,207,239
(000154) 7/05/2010 19:46:12 - example (127.0.0.1)> 200 Port command successful
(000154) 7/05/2010 19:46:12 - example (127.0.0.1)> LIST
(000154) 7/05/2010 19:46:12 - example (127.0.0.1)> 150 Opening data channel for directory list.
(000154) 7/05/2010 19:46:12 - example (127.0.0.1)> 226 Transfer OK
(000154) 7/05/2010 19:46:12 - example (127.0.0.1)> PWD
(000154) 7/05/2010 19:46:12 - example (127.0.0.1)> 257 "/" is current directory.
(000154) 7/05/2010 19:46:12 - example (127.0.0.1)> CWD A
(000154) 7/05/2010 19:46:12 - example (127.0.0.1)> 250 CWD successful. "/A" is current directory.
(000154) 7/05/2010 19:46:12 - example (127.0.0.1)> CWD /
(000154) 7/05/2010 19:46:12 - example (127.0.0.1)> 250 CWD successful. "/" is current directory.
(000154) 7/05/2010 19:46:12 - example (127.0.0.1)> PWD
(000154) 7/05/2010 19:46:12 - example (127.0.0.1)> 257 "/" is current directory.
(000154) 7/05/2010 19:46:12 - example (127.0.0.1)> CWD /
(000154) 7/05/2010 19:46:12 - example (127.0.0.1)> 250 CWD successful. "/" is current directory.
(000154) 7/05/2010 19:46:12 - example (127.0.0.1)> PWD
(000154) 7/05/2010 19:46:12 - example (127.0.0.1)> 257 "/" is current directory.
(000154) 7/05/2010 19:46:12 - example (127.0.0.1)> CWD /
(000154) 7/05/2010 19:46:12 - example (127.0.0.1)> 250 CWD successful. "/" is current directory.
(000154) 7/05/2010 19:46:12 - example (127.0.0.1)> PORT 127,0,0,1,207,240
(000154) 7/05/2010 19:46:12 - example (127.0.0.1)> 200 Port command successful
(000154) 7/05/2010 19:46:12 - example (127.0.0.1)> LIST
(000154) 7/05/2010 19:46:12 - example (127.0.0.1)> 150 Opening data channel for directory list.
(000154) 7/05/2010 19:46:12 - example (127.0.0.1)> 226 Transfer OK
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> CWD /
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> 250 CWD successful. "/" is current directory.
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> CWD a
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> 250 CWD successful. "/a" is current directory.
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> PORT 127,0,0,1,207,241
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> 200 Port command successful
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> LIST
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> 150 Opening data channel for directory list.
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> 226 Transfer OK
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> CWD //a/
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> 250 CWD successful. "/a" is current directory.
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> CWD b
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> 250 CWD successful. "/a/b" is current directory.
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> PORT 127,0,0,1,207,242
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> 200 Port command successful
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> LIST
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> 150 Opening data channel for directory list.
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> 226 Transfer OK
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> CDUP
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> 200 CDUP successful. "/a" is current directory.
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> CDUP
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> 200 CDUP successful. "/" is current directory.
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> CWD /
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> 250 CWD successful. "/" is current directory.
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> CWD c
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> 250 CWD successful. "/c" is current directory.
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> PORT 127,0,0,1,207,243
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> 200 Port command successful
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> LIST
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> 150 Opening data channel for directory list.
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> 226 Transfer OK
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> CDUP
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> 200 CDUP successful. "/" is current directory.
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> CDUP
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> 200 CDUP successful. "/" is current directory.
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> CWD /
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> 250 CWD successful. "/" is current directory.
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> PORT 127,0,0,1,207,244
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> 200 Port command successful
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> RETR a/a.txt
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> 150 Opening data channel for file transfer.
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> 226 Transfer OK
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> PORT 127,0,0,1,207,245
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> 200 Port command successful
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> RETR a/b/ab.txt
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> 150 Opening data channel for file transfer.
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> 226 Transfer OK
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> PORT 127,0,0,1,207,246
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> 200 Port command successful
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> RETR c/c.txt
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> 150 Opening data channel for file transfer.
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> 226 Transfer OK
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> PORT 127,0,0,1,207,247
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> 200 Port command successful
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> RETR root1.txt
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> 150 Opening data channel for file transfer.
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> 226 Transfer OK
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> PORT 127,0,0,1,207,248
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> 200 Port command successful
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> RETR root2.txt
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> 150 Opening data channel for file transfer.
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> 226 Transfer OK
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> QUIT
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> 221 Goodbye
(000154) 7/05/2010 19:46:13 - example (127.0.0.1)> disconnected.