public class FTPClient
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
(package private) static class |
FTPClient.cl |
static class |
FTPClient.entryInfo
parameter class
|
static class |
FTPClient.filetype |
(package private) static class |
FTPClient.pt
class that puts a file on a ftp-server can be used as a thread
|
Modifier and Type | Field and Description |
---|---|
(package private) java.lang.String |
account |
static java.lang.String |
ANONYMOUS |
private static int |
blockSize |
private java.io.BufferedReader |
clientInput |
private java.io.DataOutputStream |
clientOutput |
(package private) java.lang.String[] |
cmd |
private java.net.Socket |
ControlSocket |
private static int |
ControlSocketTimeout |
(package private) java.io.File |
currentLocalPath |
private java.net.ServerSocket |
DataSocketActive |
private java.net.Socket |
DataSocketPassive |
private boolean |
DataSocketPassiveMode |
private int |
DataSocketTimeout |
private boolean |
glob |
(package private) java.lang.String |
host |
private java.util.Map<java.lang.String,FTPClient.entryInfo> |
infoCache |
private static ConcurrentLog |
log |
private static java.text.SimpleDateFormat |
lsDateFormat |
private static java.util.regex.Pattern |
lsStyle |
(package private) java.lang.String |
password |
static FTPClient.entryInfo |
POISON_entryInfo |
(package private) int |
port |
private java.lang.String |
prompt |
(package private) java.lang.String |
remotegreeting |
(package private) java.lang.String |
remotemessage |
(package private) java.lang.String |
remotesystem |
private static char |
transferType |
private static java.lang.String |
vDATE |
Constructor and Description |
---|
FTPClient() |
Modifier and Type | Method and Description |
---|---|
private java.io.File |
absoluteLocalFile(java.lang.String localFilename) |
boolean |
APPEND() |
private void |
applyDataSocketTimeout()
sets the timeout for the socket
|
private static java.lang.String[] |
argList2StringArray(java.lang.String argList) |
boolean |
ASCII() |
boolean |
BELL() |
boolean |
BINARY() |
boolean |
BYE() |
boolean |
CD() |
boolean |
CLOSE() |
private void |
closeConnection()
close all sockets
|
private void |
closeDataSocket()
closes data connection
|
boolean |
COPY(java.lang.String[] args) |
boolean |
CREATE() |
private void |
createActiveDataPort() |
private void |
createDataSocket()
create data channel
|
private void |
createPassiveDataPort() |
boolean |
DEBUG() |
boolean |
DEL() |
boolean |
DIR() |
private static void |
dir(java.lang.String host,
java.lang.String remotePath,
java.lang.String account,
java.lang.String password) |
static java.util.List<java.lang.String> |
dir(java.lang.String host,
java.lang.String remotePath,
java.lang.String account,
java.lang.String password,
boolean extended) |
java.lang.StringBuilder |
dirhtml(java.lang.String remotePath) |
private static java.lang.StringBuilder |
dirhtml(java.lang.String host,
int port,
java.lang.String remotePath,
java.lang.String account,
java.lang.String password) |
static java.lang.StringBuilder |
dirhtml(java.lang.String base,
java.lang.String servermessage,
java.lang.String greeting,
java.lang.String system,
java.util.List<java.lang.String> list,
boolean metaRobotNoindex) |
boolean |
DISCONNECT() |
java.util.Date |
entryDate(java.lang.String path) |
boolean |
exec(java.lang.String command,
boolean promptIt) |
boolean |
EXIT() |
FTPClient.entryInfo |
fileInfo(java.lang.String path)
parse LIST of file
|
long |
fileSize(java.lang.String path)
size of file on ftp-server (maybe size of directory-entry is possible)
|
boolean |
GET() |
byte[] |
get(java.lang.String fileName) |
private void |
get(java.lang.String fileDest,
java.lang.String fileName) |
static void |
get(java.lang.String host,
java.lang.String remoteFile,
java.io.File localPath,
java.lang.String account,
java.lang.String password) |
static void |
getAnonymous(java.lang.String host,
java.lang.String remoteFile,
java.io.File localPath) |
private java.net.Socket |
getDataSocket() |
private int |
getStatus(java.lang.String reply)
returns status of reply
1 Positive Preliminary reply 2 Positive Completion reply 3 Positive
Intermediate reply 4 Transient Negative Completion reply 5 Permanent
Negative Completion reply
|
private int |
getStatusCode(java.lang.String reply)
gives reply code
|
int |
getTimeout()
control socket timeout
|
boolean |
GLOB() |
boolean |
HASH() |
boolean |
HELP() |
boolean |
isFolder(java.lang.String path)
checks if path is a folder
|
boolean |
isLoggedIn()
we are authorized to use the server
|
private boolean |
isNotPositiveCompletion(java.lang.String reply)
checks if status code is in group 2 ("2xx message")
|
private boolean |
isPassive()
use passive ftp?
|
boolean |
JAVA() |
private void |
javaexec(java.lang.String[] inArgs) |
boolean |
JJDECODE() |
boolean |
JJENCODE() |
boolean |
JOIN(java.lang.String[] args) |
boolean |
LCD() |
boolean |
LDEL() |
boolean |
LDIR() |
private java.lang.String |
lenformatted(java.lang.String s,
int l) |
private java.lang.String[] |
line2args(java.lang.String line) |
java.util.List<java.lang.String> |
list(java.lang.String path,
boolean extended) |
boolean |
LITERAL() |
private void |
literal(java.lang.String commandLine) |
boolean |
LLS() |
boolean |
LMD() |
boolean |
LMKDIR() |
boolean |
LMV() |
void |
login(java.lang.String account,
java.lang.String password)
Login to server
|
boolean |
LPWD() |
boolean |
LRD() |
boolean |
LRM() |
boolean |
LRMDIR() |
boolean |
LS() |
private java.lang.String |
ls(java.io.File inode) |
static void |
main(java.lang.String[] args) |
private boolean |
matches(java.lang.String name,
java.lang.String pattern) |
boolean |
MDELETE() |
boolean |
MDIR() |
boolean |
MGET() |
private void |
mget(java.lang.String pattern,
boolean remove) |
boolean |
MKDIR() |
boolean |
MLS() |
boolean |
MOVEDOWN() |
boolean |
MPUT() |
boolean |
MV()
public boolean MOVEUP() { }
|
boolean |
NOOP() |
boolean |
notConnected() |
boolean |
OPEN() |
void |
open(java.lang.String host,
int port) |
private static FTPClient.entryInfo |
parseListData(java.lang.String line)
parses output of LIST from ftp-server currently UNIX ls-style only, ie:
-rw-r--r-- 1 root other 531 Jan 29 03:26 README dr-xr-xr-x 2 root 512 Apr
8 1994 etc
|
private void |
printElements(java.util.List<java.lang.String> list) |
private static void |
printHelp() |
boolean |
PROMPT() |
boolean |
PUT() |
static java.lang.String |
put(java.lang.String host,
java.io.File localFile,
java.lang.String remotePath,
java.lang.String remoteName,
java.lang.String account,
java.lang.String password) |
private void |
put(java.lang.String fileName,
java.lang.String fileDest) |
static java.lang.Thread |
putAsync(java.lang.String host,
java.io.File localFile,
java.lang.String remotePath,
java.lang.String remoteName,
java.lang.String account,
java.lang.String password) |
private java.lang.String |
pwd() |
boolean |
PWD() |
private java.lang.String |
quit() |
boolean |
QUIT() |
boolean |
QUOTE() |
private java.lang.String |
receive() |
boolean |
RECV() |
boolean |
REMOTEHELP() |
private void |
retrieveFilesRecursively(java.lang.String remote,
boolean delete) |
private java.lang.String |
reverse(java.lang.String s) |
boolean |
RM() |
boolean |
RMDIR() |
private void |
rmForced(java.lang.String path) |
boolean |
SEND() |
private void |
send(java.lang.String buf) |
private void |
sendTransferType(char type) |
void |
setDataSocketTimeout(int timeout)
after this time the data connection is closed
|
private void |
setLoginData(java.lang.String account,
java.lang.String password,
java.lang.String reply)
remember username and password which were used to login
|
private static void |
sitelist(FTPClient ftpClient,
java.lang.String path,
java.util.concurrent.LinkedBlockingQueue<FTPClient.entryInfo> queue) |
static java.util.concurrent.BlockingQueue<FTPClient.entryInfo> |
sitelist(java.lang.String host,
int port,
java.lang.String user,
java.lang.String pw)
generate a list of all files on a ftp server using the anonymous account
|
int |
size(java.lang.String path) |
void |
sys() |
boolean |
TRACE() |
boolean |
TYPE() |
private void |
unsetLoginData() |
boolean |
USER() |
public static final java.lang.String ANONYMOUS
private static final ConcurrentLog log
private static final java.lang.String vDATE
private boolean glob
private static final char transferType
private static final int blockSize
private java.net.Socket ControlSocket
private static final int ControlSocketTimeout
private int DataSocketTimeout
private java.net.ServerSocket DataSocketActive
private java.net.Socket DataSocketPassive
private boolean DataSocketPassiveMode
private java.io.BufferedReader clientInput
private java.io.DataOutputStream clientOutput
private java.lang.String prompt
java.lang.String[] cmd
java.io.File currentLocalPath
java.lang.String account
java.lang.String password
java.lang.String host
java.lang.String remotemessage
java.lang.String remotegreeting
java.lang.String remotesystem
int port
private final java.util.Map<java.lang.String,FTPClient.entryInfo> infoCache
private static final java.text.SimpleDateFormat lsDateFormat
private static final java.util.regex.Pattern lsStyle
public static final FTPClient.entryInfo POISON_entryInfo
public boolean exec(java.lang.String command, boolean promptIt)
private java.lang.String[] line2args(java.lang.String line)
private void javaexec(java.lang.String[] inArgs)
public boolean ASCII()
public boolean BINARY()
public boolean BYE()
public boolean CD()
public boolean CLOSE()
private void rmForced(java.lang.String path) throws java.io.IOException
java.io.IOException
public java.util.Date entryDate(java.lang.String path)
path
- public boolean DEL()
public boolean RM()
public boolean DIR()
public boolean DISCONNECT()
private java.lang.String quit() throws java.io.IOException
java.io.IOException
public boolean EXIT()
public boolean GET()
private java.io.File absoluteLocalFile(java.lang.String localFilename)
localFilename
- private void retrieveFilesRecursively(java.lang.String remote, boolean delete)
public boolean isFolder(java.lang.String path)
path
- public boolean GLOB()
public boolean HASH()
public boolean JJENCODE()
public boolean JJDECODE()
private static java.lang.String[] argList2StringArray(java.lang.String argList)
public boolean JOIN(java.lang.String[] args)
public boolean COPY(java.lang.String[] args)
public boolean JAVA()
public boolean LCD()
public boolean LDEL()
public boolean LDIR()
public FTPClient.entryInfo fileInfo(java.lang.String path)
path
- on ftp-serverprivate int getStatus(java.lang.String reply)
reply
- private int getStatusCode(java.lang.String reply)
reply
- private boolean isNotPositiveCompletion(java.lang.String reply)
reply
- private static FTPClient.entryInfo parseListData(java.lang.String line)
line
- private java.lang.String ls(java.io.File inode)
private java.lang.String lenformatted(java.lang.String s, int l)
public boolean LITERAL()
public boolean LLS()
public boolean LMD()
public boolean LMKDIR()
public boolean LMV()
public boolean LPWD()
public boolean LRD()
public boolean LRMDIR()
public boolean LRM()
public boolean LS()
private void printElements(java.util.List<java.lang.String> list)
list
- public java.util.List<java.lang.String> list(java.lang.String path, boolean extended) throws java.io.IOException
java.io.IOException
public boolean MDIR()
public boolean MKDIR()
public boolean MGET()
private void mget(java.lang.String pattern, boolean remove) throws java.io.IOException
java.io.IOException
public boolean MOVEDOWN()
public boolean MV()
public boolean NOOP()
public boolean OPEN()
public void open(java.lang.String host, int port) throws java.io.IOException
java.io.IOException
public boolean notConnected()
private void closeConnection() throws java.io.IOException
java.io.IOException
public boolean PROMPT()
public boolean PUT()
public boolean PWD()
private java.lang.String pwd() throws java.io.IOException
java.io.IOException
public boolean REMOTEHELP()
public boolean RMDIR()
public boolean QUIT()
public boolean RECV()
public long fileSize(java.lang.String path)
path
- public int size(java.lang.String path) throws java.io.IOException
java.io.IOException
public boolean USER()
public boolean APPEND()
public boolean HELP()
public boolean QUOTE()
public boolean BELL()
public boolean MDELETE()
public boolean SEND()
public boolean DEBUG()
public boolean MLS()
public boolean TRACE()
public boolean MPUT()
public boolean TYPE()
public boolean CREATE()
private boolean matches(java.lang.String name, java.lang.String pattern)
private java.lang.String reverse(java.lang.String s)
private void send(java.lang.String buf) throws java.io.IOException
java.io.IOException
private java.lang.String receive() throws java.io.IOException
java.io.IOException
private void sendTransferType(char type) throws java.io.IOException
java.io.IOException
private java.net.Socket getDataSocket() throws java.io.IOException
java.io.IOException
private void createDataSocket() throws java.io.IOException
java.io.IOException
private boolean isPassive()
private void createActiveDataPort() throws java.io.IOException
java.io.IOException
private void createPassiveDataPort() throws java.io.IOException
java.io.IOException
private void closeDataSocket() throws java.io.IOException
java.io.IOException
private void applyDataSocketTimeout() throws java.net.SocketException
java.net.SocketException
private void get(java.lang.String fileDest, java.lang.String fileName) throws java.io.IOException
java.io.IOException
public byte[] get(java.lang.String fileName) throws java.io.IOException
java.io.IOException
private void put(java.lang.String fileName, java.lang.String fileDest) throws java.io.IOException
java.io.IOException
public void login(java.lang.String account, java.lang.String password) throws java.io.IOException
account
- password
- java.io.IOException
public boolean isLoggedIn()
private void setLoginData(java.lang.String account, java.lang.String password, java.lang.String reply)
account
- password
- reply
- remoteGreetingprivate void unsetLoginData()
public void sys() throws java.io.IOException
java.io.IOException
private void literal(java.lang.String commandLine) throws java.io.IOException
java.io.IOException
public int getTimeout()
public void setDataSocketTimeout(int timeout)
timeout
- in seconds, 0 = infinitepublic static java.util.List<java.lang.String> dir(java.lang.String host, java.lang.String remotePath, java.lang.String account, java.lang.String password, boolean extended)
private static void dir(java.lang.String host, java.lang.String remotePath, java.lang.String account, java.lang.String password)
public static java.util.concurrent.BlockingQueue<FTPClient.entryInfo> sitelist(java.lang.String host, int port, java.lang.String user, java.lang.String pw) throws java.io.IOException
host
- java.io.IOException
private static void sitelist(FTPClient ftpClient, java.lang.String path, java.util.concurrent.LinkedBlockingQueue<FTPClient.entryInfo> queue)
public java.lang.StringBuilder dirhtml(java.lang.String remotePath) throws java.io.IOException
java.io.IOException
private static java.lang.StringBuilder dirhtml(java.lang.String host, int port, java.lang.String remotePath, java.lang.String account, java.lang.String password) throws java.io.IOException
java.io.IOException
public static java.lang.StringBuilder dirhtml(java.lang.String base, java.lang.String servermessage, java.lang.String greeting, java.lang.String system, java.util.List<java.lang.String> list, boolean metaRobotNoindex)
public static java.lang.String put(java.lang.String host, java.io.File localFile, java.lang.String remotePath, java.lang.String remoteName, java.lang.String account, java.lang.String password) throws java.io.IOException
java.io.IOException
public static void get(java.lang.String host, java.lang.String remoteFile, java.io.File localPath, java.lang.String account, java.lang.String password)
public static void getAnonymous(java.lang.String host, java.lang.String remoteFile, java.io.File localPath)
public static java.lang.Thread putAsync(java.lang.String host, java.io.File localFile, java.lang.String remotePath, java.lang.String remoteName, java.lang.String account, java.lang.String password)
private static void printHelp()
public static void main(java.lang.String[] args)