org.apache.tools.ant.taskdefs.optional.net

Class FTP.FTPDirectoryScanner.AntFTPFile

Enclosing Class:
FTP.FTPDirectoryScanner
Known Direct Subclasses:
FTP.FTPDirectoryScanner.AntFTPRootFile

protected class FTP.FTPDirectoryScanner.AntFTPFile
extends java.lang.Object

an AntFTPFile is a representation of a remote file

Since:
Ant 1.6

Constructor Summary

AntFTPFile(FTPClient client, FTPFile ftpFile, String curpwd)
constructor
AntFTPFile(FTP.FTPDirectoryScanner.AntFTPFile parent, String path)
other constructor

Method Summary

boolean
exists()
find out if the file exists
String
getAbsolutePath()
find out the absolute path of the file
protected FTPClient
getClient()
return the attached FTP client object.
String
getCurpwd()
returns the path of the directory containing the AntFTPFile.
String
getFastRelativePath()
find out the relative path assuming that the path used to construct this AntFTPFile was spelled properly with regards to case.
FTPFile
getFile(FTPFile[] theFiles, String lastpathelement)
find a file matching a string in an array of FTPFile.
String
getLink()
if the file is a symbolic link, find out to what it is pointing
String
getName()
get the name of the file
String
getRelativePath()
find out the relative path to the rootPath of the enclosing scanner.
boolean
isDirectory()
tell if a file is a directory.
boolean
isSymbolicLink()
tell if a file is a symbolic link
boolean
isTraverseSymlinks()
find out if a symbolic link is encountered in the relative path of this file from rootPath.
protected void
setCurpwd(String curpwd)
sets the current path of an AntFTPFile

Constructor Details

AntFTPFile

public AntFTPFile(FTPClient client,
                  FTPFile ftpFile,
                  String curpwd)
constructor

Parameters:
client - ftp client variable
ftpFile - the file
curpwd - absolute remote path where the file is found


AntFTPFile

public AntFTPFile(FTP.FTPDirectoryScanner.AntFTPFile parent,
                  String path)
other constructor

Parameters:
parent - the parent file
path - a relative path to the parent file

Method Details

exists

public boolean exists()
find out if the file exists

Returns:
true if the file exists


getAbsolutePath

public String getAbsolutePath()
find out the absolute path of the file

Returns:
absolute path as string


getClient

protected FTPClient getClient()
return the attached FTP client object. Warning : this instance is really shared with the enclosing class.

Returns:
FTP client


getCurpwd

public String getCurpwd()
returns the path of the directory containing the AntFTPFile. of the full path of the file itself in case of AntFTPRootFile

Returns:
parent directory of the AntFTPFile


getFastRelativePath

public String getFastRelativePath()
find out the relative path assuming that the path used to construct this AntFTPFile was spelled properly with regards to case. This is OK on a case sensitive system such as UNIX

Returns:
relative path


getFile

public FTPFile getFile(FTPFile[] theFiles,
                       String lastpathelement)
find a file matching a string in an array of FTPFile. This method will find "alpha" when requested for "ALPHA" if and only if the caseSensitive attribute is set to false. When caseSensitive is set to true, only the exact match is returned.

Parameters:
theFiles - array of files
lastpathelement - the file name being sought

Returns:
null if the file cannot be found, otherwise return the matching file.


getLink

public String getLink()
if the file is a symbolic link, find out to what it is pointing

Returns:
the target of the symbolic link


getName

public String getName()
get the name of the file

Returns:
the name of the file


getRelativePath

public String getRelativePath()
            throws IOException,
                   BuildException
find out the relative path to the rootPath of the enclosing scanner. this relative path is spelled exactly like on disk, for instance if the AntFTPFile has been instantiated as ALPHA, but the file is really called alpha, this method will return alpha. If a symbolic link is encountered, it is followed, but the name of the link rather than the name of the target is returned. (ie does not behave like File.getCanonicalPath())

Returns:
relative path, separated by remoteFileSep

Throws:
BuildException - if one of the components of the relative path cannot be found.


isDirectory

public boolean isDirectory()
tell if a file is a directory. note that it will return false for symbolic links pointing to directories.

Returns:
true for directories


isSymbolicLink

public boolean isSymbolicLink()
tell if a file is a symbolic link

Returns:
true for symbolic links


isTraverseSymlinks

public boolean isTraverseSymlinks()
            throws IOException,
                   BuildException
find out if a symbolic link is encountered in the relative path of this file from rootPath.

Returns:
true if a symbolic link is encountered in the relative path.

Throws:
BuildException - if a path component in the relative path cannot be found.


setCurpwd

protected void setCurpwd(String curpwd)
sets the current path of an AntFTPFile

Parameters:
curpwd - the current path one wants to set


Copyright B) 2000-2005 Apache Software Foundation. All Rights Reserved.