org.apache.commons.net.ftp

Class FTPFile

Implemented Interfaces:
Serializable

public class FTPFile
extends java.lang.Object
implements Serializable

The FTPFile class is used to represent information about files stored on an FTP server. Because there is no standard representation for file information on FTP servers, it may not always be possible to extract all the information that can be represented by FTPFile, or it may even be possible to extract more information. In cases where more information can be extracted, you will want to subclass FTPFile and implement your own org.apache.commons.net.ftp.FTPFileListParser to extract the information. However, most FTP servers return file information in a format that can be completely parsed by org.apache.commons.net.ftp.DefaultFTPFileListParser and stored in FTPFile.

See Also:
FTPFileListParser, DefaultFTPFileListParser, FTPClient.listFiles

Field Summary

static int
DIRECTORY_TYPE
A constant indicating an FTPFile is a directory.
static int
EXECUTE_PERMISSION
A constant indicating file execute permission or directory listing permission.
static int
FILE_TYPE
A constant indicating an FTPFile is a file.
static int
GROUP_ACCESS
A constant indicating group access permissions.
static int
READ_PERMISSION
A constant indicating file/directory read permission.
static int
SYMBOLIC_LINK_TYPE
A constant indicating an FTPFile is a symbolic link.
static int
UNKNOWN_TYPE
A constant indicating an FTPFile is of unknown type.
static int
USER_ACCESS
A constant indicating user access permissions.
static int
WORLD_ACCESS
A constant indicating world access permissions.
static int
WRITE_PERMISSION
A constant indicating file/directory write permission.

Constructor Summary

FTPFile()
Creates an empty FTPFile.

Method Summary

@Override
String toString()
Returns a string representation of the FTPFile information.
String
getGroup()
Returns the name of the group owning the file.
int
getHardLinkCount()
Return the number of hard links to this file.
String
getLink()
If the FTPFile is a symbolic link, this method returns the name of the file being pointed to by the symbolic link.
String
getName()
Return the name of the file.
String
getRawListing()
Get the original FTP server raw listing used to initialize the FTPFile.
long
getSize()
Return the file size in bytes.
Calendar
getTimestamp()
Returns the file timestamp.
int
getType()
Return the type of the file (one of the _TYPE constants), e.g., if it is a directory, a regular file, or a symbolic link.
String
getUser()
Returns the name of the user owning the file.
boolean
hasPermission(int access, int permission)
Determines if the given access group (one of the _ACCESS constants) has the given access permission (one of the _PERMISSION constants) to the file.
boolean
isDirectory()
Determine if the file is a directory.
boolean
isFile()
Determine if the file is a regular file.
boolean
isSymbolicLink()
Determine if the file is a symbolic link.
boolean
isUnknown()
Determine if the type of the file is unknown.
void
setGroup(String group)
Set the name of the group owning the file.
void
setHardLinkCount(int links)
Set the number of hard links to this file.
void
setLink(String link)
If the FTPFile is a symbolic link, use this method to set the name of the file being pointed to by the symbolic link.
void
setName(String name)
Set the name of the file.
void
setPermission(int access, int permission, boolean value)
Set if the given access group (one of the _ACCESS constants) has the given access permission (one of the _PERMISSION constants) to the file.
void
setRawListing(String rawListing)
Set the original FTP server raw listing from which the FTPFile was created.
void
setSize(long size)
Set the file size in bytes.
void
setTimestamp(Calendar date)
Set the file timestamp.
void
setType(int type)
Set the type of the file (DIRECTORY_TYPE, FILE_TYPE, etc.).
void
setUser(String user)
Set the name of the user owning the file.

Field Details

DIRECTORY_TYPE

public static final int DIRECTORY_TYPE
A constant indicating an FTPFile is a directory. **
Field Value:
1

EXECUTE_PERMISSION

public static final int EXECUTE_PERMISSION
A constant indicating file execute permission or directory listing permission.
Field Value:
2

FILE_TYPE

public static final int FILE_TYPE
A constant indicating an FTPFile is a file. **
Field Value:
0

GROUP_ACCESS

public static final int GROUP_ACCESS
A constant indicating group access permissions. **
Field Value:
1

READ_PERMISSION

public static final int READ_PERMISSION
A constant indicating file/directory read permission. **
Field Value:
0

SYMBOLIC_LINK_TYPE

public static final int SYMBOLIC_LINK_TYPE
A constant indicating an FTPFile is a symbolic link. **
Field Value:
2

UNKNOWN_TYPE

public static final int UNKNOWN_TYPE
A constant indicating an FTPFile is of unknown type. **
Field Value:
3

USER_ACCESS

public static final int USER_ACCESS
A constant indicating user access permissions. **
Field Value:
0

WORLD_ACCESS

public static final int WORLD_ACCESS
A constant indicating world access permissions. **
Field Value:
2

WRITE_PERMISSION

public static final int WRITE_PERMISSION
A constant indicating file/directory write permission. **
Field Value:
1

Constructor Details

FTPFile

public FTPFile()
Creates an empty FTPFile. **

Method Details

String toString

public @Override String toString()
Returns a string representation of the FTPFile information. This will be the raw FTP server listing that was used to initialize the FTPFile instance.

Returns:
A string representation of the FTPFile information.

getGroup

public String getGroup()
Returns the name of the group owning the file. Sometimes this will be a string representation of the group number.

Returns:
The name of the group owning the file.

getHardLinkCount

public int getHardLinkCount()
Return the number of hard links to this file. This is not to be confused with symbolic links.

Returns:
The number of hard links to this file.

getLink

public String getLink()
If the FTPFile is a symbolic link, this method returns the name of the file being pointed to by the symbolic link. Otherwise it returns null.

Returns:
The file pointed to by the symbolic link (null if the FTPFile is not a symbolic link).

getName

public String getName()
Return the name of the file.

Returns:
The name of the file.

getRawListing

public String getRawListing()
Get the original FTP server raw listing used to initialize the FTPFile.

Returns:
The original FTP server raw listing used to initialize the FTPFile.

getSize

public long getSize()
Return the file size in bytes.

Returns:
The file size in bytes.

getTimestamp

public Calendar getTimestamp()
Returns the file timestamp. This usually the last modification time.

Returns:
A Calendar instance representing the file timestamp.

getType

public int getType()
Return the type of the file (one of the _TYPE constants), e.g., if it is a directory, a regular file, or a symbolic link.

Returns:
The type of the file.

getUser

public String getUser()
Returns the name of the user owning the file. Sometimes this will be a string representation of the user number.

Returns:
The name of the user owning the file.

hasPermission

public boolean hasPermission(int access,
                             int permission)
Determines if the given access group (one of the _ACCESS constants) has the given access permission (one of the _PERMISSION constants) to the file.

Parameters:
access - The access group (one of the _ACCESS constants)
permission - The access permission (one of the _PERMISSION constants)

isDirectory

public boolean isDirectory()
Determine if the file is a directory.

Returns:
True if the file is of type DIRECTORY_TYPE, false if not.

isFile

public boolean isFile()
Determine if the file is a regular file.

Returns:
True if the file is of type FILE_TYPE, false if not.

isSymbolicLink

public boolean isSymbolicLink()
Determine if the file is a symbolic link.

Returns:
True if the file is of type UNKNOWN_TYPE, false if not.

isUnknown

public boolean isUnknown()
Determine if the type of the file is unknown.

Returns:
True if the file is of type UNKNOWN_TYPE, false if not.

setGroup

public void setGroup(String group)
Set the name of the group owning the file. This may be a string representation of the group number.

Parameters:
group - The name of the group owning the file.

setHardLinkCount

public void setHardLinkCount(int links)
Set the number of hard links to this file. This is not to be confused with symbolic links.

Parameters:
links - The number of hard links to this file.

setLink

public void setLink(String link)
If the FTPFile is a symbolic link, use this method to set the name of the file being pointed to by the symbolic link.

Parameters:
link - The file pointed to by the symbolic link.

setName

public void setName(String name)
Set the name of the file.

Parameters:
name - The name of the file.

setPermission

public void setPermission(int access,
                          int permission,
                          boolean value)
Set if the given access group (one of the _ACCESS constants) has the given access permission (one of the _PERMISSION constants) to the file.

Parameters:
access - The access group (one of the _ACCESS constants)
permission - The access permission (one of the _PERMISSION constants)
value - True if permission is allowed, false if not.

setRawListing

public void setRawListing(String rawListing)
Set the original FTP server raw listing from which the FTPFile was created.

Parameters:
rawListing - The raw FTP server listing.

setSize

public void setSize(long size)
Set the file size in bytes.
Parameters:
size - The file size in bytes.

setTimestamp

public void setTimestamp(Calendar date)
Set the file timestamp. This usually the last modification time. The parameter is not cloned, so do not alter its value after calling this method.

Parameters:
date - A Calendar instance representing the file timestamp.

setType

public void setType(int type)
Set the type of the file (DIRECTORY_TYPE, FILE_TYPE, etc.).

Parameters:
type - The integer code representing the type of the file.

setUser

public void setUser(String user)
Set the name of the user owning the file. This may be a string representation of the user number;

Parameters:
user - The name of the user owning the file.