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

# Class FTPTaskMirrorImpl.FTPDirectoryScanner.AntFTPFile

java.lang.Object
org.apache.tools.ant.taskdefs.optional.net.FTPTaskMirrorImpl.FTPDirectoryScanner.AntFTPFile

Direct Known Subclasses:
  `FTPTaskMirrorImpl.FTPDirectoryScanner.AntFTPRootFile`

Enclosing class:
  `FTPTaskMirrorImpl.FTPDirectoryScanner`

protected class FTPTaskMirrorImpl.FTPDirectoryScanner.AntFTPFile extends Object
an AntFTPFile is a representation of a remote file

Since:
  Ant 1.6

## Constructor Summary

Constructors
Constructor
Description
`AntFTPFile(org.apache.commons.net.ftp.FTPClient client, org.apache.commons.net.ftp.FTPFile ftpFile, String curpwd)`
constructor
`AntFTPFile(FTPTaskMirrorImpl.FTPDirectoryScanner.AntFTPFile parent, String path)`
other constructor

## Method Summary

Modifier and Type
Method
Description
`boolean`
`exists()`
find out if the file exists
`String`
`getAbsolutePath()`
find out the absolute path of the file
`protected org.apache.commons.net.ftp.FTPClient`
`getClient()`
return the attached FTP client object.
`String`
`getCurpwd()`
returns the path of the directory containing the AntFTPFile.
`String`
`getCurpwdPlusFileSep()`
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.
`org.apache.commons.net.ftp.FTPFile`
`getFile(org.apache.commons.net.ftp.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
`String`
`toString()`
Get a string rep of this object.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Constructor Details

### AntFTPFile

public AntFTPFile(org.apache.commons.net.ftp.FTPClient client, org.apache.commons.net.ftp.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(FTPTaskMirrorImpl.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

### 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

### getAbsolutePath

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

Returns:
  absolute path as string

### 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

### 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:
  `IOException` - if a change directory fails, ...
  `BuildException` - if one of the components of the relative path cannot be found.

### getFile

public org.apache.commons.net.ftp.FTPFile getFile(org.apache.commons.net.ftp.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.

### 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

### getClient

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

Returns:
  FTP client

### setCurpwd

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

Parameters:
  `curpwd` - the current path one wants to set

### 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

### getCurpwdPlusFileSep

public String getCurpwdPlusFileSep()
returns the path of the directory containing the AntFTPFile. of the full path of the file itself in case of AntFTPRootFile and appends the remote file separator if necessary.

Returns:
  parent directory of the AntFTPFile
Since:
  Ant 1.8.2

### 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:
  `IOException` - if one of the change directory or directory listing operations fails
  `BuildException` - if a path component in the relative path cannot be found.

### toString

public String toString()
Get a string rep of this object.

Overrides:
  `toString` in class `Object`
Returns:
  a string containing the pwd and the file.