org.apache.tools.ant.util

Class FileUtils


public class FileUtils
extends java.lang.Object

This class also encapsulates methods which allow Files to be referred to using abstract path names which are translated to native system file paths at runtime as well as copying files or setting their last modification time.

Field Summary

static long
FAT_FILE_TIMESTAMP_GRANULARITY
The granularity of timestamps under FAT.
static long
NTFS_FILE_TIMESTAMP_GRANULARITY
The granularity of timestamps under the NT File System.
static long
UNIX_FILE_TIMESTAMP_GRANULARITY
The granularity of timestamps under Unix.

Constructor Summary

FileUtils()
Empty constructor.

Method Summary

static void
close(InputStream device)
Close a stream without throwing any exception if something went wrong.
static void
close(OutputStream device)
Close a stream without throwing any exception if something went wrong.
static void
close(Reader device)
Close a stream without throwing any exception if something went wrong.
static void
close(Writer device)
Close a Writer without throwing any exception if something went wrong.
boolean
contentEquals(File f1, File f2)
Compares the contents of two files.
boolean
contentEquals(File f1, File f2, boolean textfile)
Compares the contents of two files.
void
copyFile(File sourceFile, File destFile)
Convenience method to copy a file from a source to a destination.
void
copyFile(File sourceFile, File destFile, FilterSetCollection filters)
Convenience method to copy a file from a source to a destination specifying if token filtering must be used.
void
copyFile(File sourceFile, File destFile, FilterSetCollection filters, Vector filterChains, boolean overwrite, boolean preserveLastModified, String inputEncoding, String outputEncoding, Project project)
Convenience method to copy a file from a source to a destination specifying if token filtering must be used, if filter chains must be used, if source files may overwrite newer destination files and the last modified time of destFile file should be made equal to the last modified time of sourceFile.
void
copyFile(File sourceFile, File destFile, FilterSetCollection filters, Vector filterChains, boolean overwrite, boolean preserveLastModified, String encoding, Project project)
Convenience method to copy a file from a source to a destination specifying if token filtering must be used, if filter chains must be used, if source files may overwrite newer destination files and the last modified time of destFile file should be made equal to the last modified time of sourceFile.
void
copyFile(File sourceFile, File destFile, FilterSetCollection filters, boolean overwrite)
Convenience method to copy a file from a source to a destination specifying if token filtering must be used and if source files may overwrite newer destination files.
void
copyFile(File sourceFile, File destFile, FilterSetCollection filters, boolean overwrite, boolean preserveLastModified)
Convenience method to copy a file from a source to a destination specifying if token filtering must be used, if source files may overwrite newer destination files and the last modified time of destFile file should be made equal to the last modified time of sourceFile.
void
copyFile(File sourceFile, File destFile, FilterSetCollection filters, boolean overwrite, boolean preserveLastModified, String encoding)
Convenience method to copy a file from a source to a destination specifying if token filtering must be used, if source files may overwrite newer destination files, the last modified time of destFile file should be made equal to the last modified time of sourceFile and which character encoding to assume.
void
copyFile(String sourceFile, String destFile)
Convenience method to copy a file from a source to a destination.
void
copyFile(String sourceFile, String destFile, FilterSetCollection filters)
Convenience method to copy a file from a source to a destination specifying if token filtering must be used.
void
copyFile(String sourceFile, String destFile, FilterSetCollection filters, Vector filterChains, boolean overwrite, boolean preserveLastModified, String inputEncoding, String outputEncoding, Project project)
Convenience method to copy a file from a source to a destination specifying if token filtering must be used, if filter chains must be used, if source files may overwrite newer destination files and the last modified time of destFile file should be made equal to the last modified time of sourceFile.
void
copyFile(String sourceFile, String destFile, FilterSetCollection filters, Vector filterChains, boolean overwrite, boolean preserveLastModified, String encoding, Project project)
Convenience method to copy a file from a source to a destination specifying if token filtering must be used, if filter chains must be used, if source files may overwrite newer destination files and the last modified time of destFile file should be made equal to the last modified time of sourceFile.
void
copyFile(String sourceFile, String destFile, FilterSetCollection filters, boolean overwrite)
Convenience method to copy a file from a source to a destination specifying if token filtering must be used and if source files may overwrite newer destination files.
void
copyFile(String sourceFile, String destFile, FilterSetCollection filters, boolean overwrite, boolean preserveLastModified)
Convenience method to copy a file from a source to a destination specifying if token filtering must be used, if source files may overwrite newer destination files and the last modified time of destFile file should be made equal to the last modified time of sourceFile.
void
copyFile(String sourceFile, String destFile, FilterSetCollection filters, boolean overwrite, boolean preserveLastModified, String encoding)
Convenience method to copy a file from a source to a destination specifying if token filtering must be used, if source files may overwrite newer destination files and the last modified time of destFile file should be made equal to the last modified time of sourceFile.
boolean
createNewFile(File f)
This was originally an emulation of File.createNewFile for JDK 1.1, but it is now implemented using that method (Ant 1.6.3 onwards).
boolean
createNewFile(File f, boolean mkdirs)
Create a new file, optionally creating parent directories.
File
createTempFile(String prefix, String suffix, File parentDir)
Create a temporary file in a given directory.
File
createTempFile(String prefix, String suffix, File parentDir, boolean deleteOnExit)
Create a temporary file in a given directory.
static void
delete(File file)
Delete the file with File.delete() if the argument is not null.
String[]
dissect(String path)
Dissect the specified absolute path.
boolean
fileNameEquals(File f1, File f2)
Compares two filenames.
String
fromURI(String uri)
Constructs a file path from a file: URI.
String
getDefaultEncoding()
Get the default encoding.
long
getFileTimestampGranularity()
Get the granularity of file timestamps.
URL
getFileURL(File file)
Get the URL for a file taking into account # characters.
static FileUtils
getFileUtils()
Method to retrieve The FileUtils, which is shared by all users of this method.
File
getParentFile(File f)
Deprecated. since 1.7.
static String
getPath(List pathStack)
Gets path from a List of Strings.
static String
getPath(List pathStack, char separatorChar)
Gets path from a List of Strings.
static String[]
getPathStack(String path)
Gets all names of the path as an array of Strings.
static String
getRelativePath(File fromFile, File toFile)
Calculates the relative path between two files.
static boolean
isAbsolutePath(String filename)
Verifies that the specified filename represents an absolute path.
static boolean
isContextRelativePath(String filename)
On DOS and NetWare, the evaluation of certain file specifications is context-dependent.
boolean
isLeadingPath(File leading, File path)
Learn whether one path "leads" another.
boolean
isSymbolicLink(File parent, String name)
Checks whether a given file is a symbolic link.
boolean
isUpToDate(File source, File dest)
Returns true if the source is older than the dest.
boolean
isUpToDate(File source, File dest, long granularity)
Returns true if the source is older than the dest.
boolean
isUpToDate(long sourceTime, long destTime)
Compare two timestamps for being up to date using the current granularity.
boolean
isUpToDate(long sourceTime, long destTime, long granularity)
Compare two timestamps for being up to date using the specified granularity.
static FileUtils
newFileUtils()
Deprecated. since 1.7.
File
normalize(String path)
"Normalize" the given absolute path.
static String
readFully(Reader rdr)
Read from reader till EOF.
static String
readFully(Reader rdr, int bufferSize)
Read from reader till EOF.
String
removeLeadingPath(File leading, File path)
Removes a leading path from a second path.
void
rename(File from, File to)
Renames a file, even if that involves crossing file system boundaries.
File
resolveFile(File file, String filename)
Interpret the filename as a file relative to the given file unless the filename already represents an absolute filename.
void
setFileLastModified(File file, long time)
Calls File.setLastModified(long time).
String
toURI(String path)
Constructs a file: URI that represents the external form of the given pathname.
String
toVMSPath(File f)
Returns a VMS String representation of a File object.
static String
translatePath(String toProcess)
Translate a path into its native (platform specific) format.

Field Details

FAT_FILE_TIMESTAMP_GRANULARITY

public static final long FAT_FILE_TIMESTAMP_GRANULARITY
The granularity of timestamps under FAT.
Field Value:
2000L

NTFS_FILE_TIMESTAMP_GRANULARITY

public static final long NTFS_FILE_TIMESTAMP_GRANULARITY
The granularity of timestamps under the NT File System. NTFS has a granularity of 100 nanoseconds, which is less than 1 millisecond, so we round this up to 1 millisecond.
Field Value:
1L

UNIX_FILE_TIMESTAMP_GRANULARITY

public static final long UNIX_FILE_TIMESTAMP_GRANULARITY
The granularity of timestamps under Unix.
Field Value:
1000L

Constructor Details

FileUtils

protected FileUtils()
Empty constructor.

Method Details

close

public static void close(InputStream device)
Close a stream without throwing any exception if something went wrong. Do not attempt to close it if the argument is null.
Parameters:
device - stream, can be null.

close

public static void close(OutputStream device)
Close a stream without throwing any exception if something went wrong. Do not attempt to close it if the argument is null.
Parameters:
device - stream, can be null.

close

public static void close(Reader device)
Close a stream without throwing any exception if something went wrong. Do not attempt to close it if the argument is null.
Parameters:
device - Reader, can be null.

close

public static void close(Writer device)
Close a Writer without throwing any exception if something went wrong. Do not attempt to close it if the argument is null.
Parameters:
device - output writer, can be null.

contentEquals

public boolean contentEquals(File f1,
                             File f2)
            throws IOException
Compares the contents of two files.
Parameters:
f1 - the file whose content is to be compared.
f2 - the other file whose content is to be compared.
Returns:
true if the content of the files is the same.

contentEquals

public boolean contentEquals(File f1,
                             File f2,
                             boolean textfile)
            throws IOException
Compares the contents of two files.
Parameters:
f1 - the file whose content is to be compared.
f2 - the other file whose content is to be compared.
textfile - true if the file is to be treated as a text file and differences in kind of line break are to be ignored.
Returns:
true if the content of the files is the same.
Since:
Ant 1.6.3

copyFile

public void copyFile(File sourceFile,
                     File destFile)
            throws IOException
Convenience method to copy a file from a source to a destination. No filtering is performed.
Parameters:
sourceFile - the file to copy from. Must not be null.
destFile - the file to copy to. Must not be null.

copyFile

public void copyFile(File sourceFile,
                     File destFile,
                     FilterSetCollection filters)
            throws IOException
Convenience method to copy a file from a source to a destination specifying if token filtering must be used.
Parameters:
sourceFile - the file to copy from. Must not be null.
destFile - the file to copy to. Must not be null.
filters - the collection of filters to apply to this copy.

copyFile

public void copyFile(File sourceFile,
                     File destFile,
                     FilterSetCollection filters,
                     Vector filterChains,
                     boolean overwrite,
                     boolean preserveLastModified,
                     String inputEncoding,
                     String outputEncoding,
                     Project project)
            throws IOException
Convenience method to copy a file from a source to a destination specifying if token filtering must be used, if filter chains must be used, if source files may overwrite newer destination files and the last modified time of destFile file should be made equal to the last modified time of sourceFile.
Parameters:
sourceFile - the file to copy from. Must not be null.
destFile - the file to copy to. Must not be null.
filters - the collection of filters to apply to this copy.
filterChains - filterChains to apply during the copy.
overwrite - Whether or not the destination file should be overwritten if it already exists.
preserveLastModified - Whether or not the last modified time of the resulting file should be set to that of the source file.
inputEncoding - the encoding used to read the files.
outputEncoding - the encoding used to write the files.
project - the project instance.
Since:
Ant 1.6

copyFile

public void copyFile(File sourceFile,
                     File destFile,
                     FilterSetCollection filters,
                     Vector filterChains,
                     boolean overwrite,
                     boolean preserveLastModified,
                     String encoding,
                     Project project)
            throws IOException
Convenience method to copy a file from a source to a destination specifying if token filtering must be used, if filter chains must be used, if source files may overwrite newer destination files and the last modified time of destFile file should be made equal to the last modified time of sourceFile.
Parameters:
sourceFile - the file to copy from. Must not be null.
destFile - the file to copy to. Must not be null.
filters - the collection of filters to apply to this copy.
filterChains - filterChains to apply during the copy.
overwrite - Whether or not the destination file should be overwritten if it already exists.
preserveLastModified - Whether or not the last modified time of the resulting file should be set to that of the source file.
encoding - the encoding used to read and write the files.
project - the project instance.
Since:
Ant 1.5

copyFile

public void copyFile(File sourceFile,
                     File destFile,
                     FilterSetCollection filters,
                     boolean overwrite)
            throws IOException
Convenience method to copy a file from a source to a destination specifying if token filtering must be used and if source files may overwrite newer destination files.
Parameters:
sourceFile - the file to copy from. Must not be null.
destFile - the file to copy to. Must not be null.
filters - the collection of filters to apply to this copy.
overwrite - Whether or not the destination file should be overwritten if it already exists.

copyFile

public void copyFile(File sourceFile,
                     File destFile,
                     FilterSetCollection filters,
                     boolean overwrite,
                     boolean preserveLastModified)
            throws IOException
Convenience method to copy a file from a source to a destination specifying if token filtering must be used, if source files may overwrite newer destination files and the last modified time of destFile file should be made equal to the last modified time of sourceFile.
Parameters:
sourceFile - the file to copy from. Must not be null.
destFile - the file to copy to. Must not be null.
filters - the collection of filters to apply to this copy.
overwrite - Whether or not the destination file should be overwritten if it already exists.
preserveLastModified - Whether or not the last modified time of the resulting file should be set to that of the source file.

copyFile

public void copyFile(File sourceFile,
                     File destFile,
                     FilterSetCollection filters,
                     boolean overwrite,
                     boolean preserveLastModified,
                     String encoding)
            throws IOException
Convenience method to copy a file from a source to a destination specifying if token filtering must be used, if source files may overwrite newer destination files, the last modified time of destFile file should be made equal to the last modified time of sourceFile and which character encoding to assume.
Parameters:
sourceFile - the file to copy from. Must not be null.
destFile - the file to copy to. Must not be null.
filters - the collection of filters to apply to this copy.
overwrite - Whether or not the destination file should be overwritten if it already exists.
preserveLastModified - Whether or not the last modified time of the resulting file should be set to that of the source file.
encoding - the encoding used to read and write the files.
Since:
Ant 1.5

copyFile

public void copyFile(String sourceFile,
                     String destFile)
            throws IOException
Convenience method to copy a file from a source to a destination. No filtering is performed.
Parameters:
sourceFile - Name of file to copy from. Must not be null.
destFile - Name of file to copy to. Must not be null.

copyFile

public void copyFile(String sourceFile,
                     String destFile,
                     FilterSetCollection filters)
            throws IOException
Convenience method to copy a file from a source to a destination specifying if token filtering must be used.
Parameters:
sourceFile - Name of file to copy from. Must not be null.
destFile - Name of file to copy to. Must not be null.
filters - the collection of filters to apply to this copy.

copyFile

public void copyFile(String sourceFile,
                     String destFile,
                     FilterSetCollection filters,
                     Vector filterChains,
                     boolean overwrite,
                     boolean preserveLastModified,
                     String inputEncoding,
                     String outputEncoding,
                     Project project)
            throws IOException
Convenience method to copy a file from a source to a destination specifying if token filtering must be used, if filter chains must be used, if source files may overwrite newer destination files and the last modified time of destFile file should be made equal to the last modified time of sourceFile.
Parameters:
sourceFile - Name of file to copy from. Must not be null.
destFile - Name of file to copy to. Must not be null.
filters - the collection of filters to apply to this copy.
filterChains - filterChains to apply during the copy.
overwrite - Whether or not the destination file should be overwritten if it already exists.
preserveLastModified - Whether or not the last modified time of the resulting file should be set to that of the source file.
inputEncoding - the encoding used to read the files.
outputEncoding - the encoding used to write the files.
project - the project instance.
Since:
Ant 1.6

copyFile

public void copyFile(String sourceFile,
                     String destFile,
                     FilterSetCollection filters,
                     Vector filterChains,
                     boolean overwrite,
                     boolean preserveLastModified,
                     String encoding,
                     Project project)
            throws IOException
Convenience method to copy a file from a source to a destination specifying if token filtering must be used, if filter chains must be used, if source files may overwrite newer destination files and the last modified time of destFile file should be made equal to the last modified time of sourceFile.
Parameters:
sourceFile - Name of file to copy from. Must not be null.
destFile - Name of file to copy to. Must not be null.
filters - the collection of filters to apply to this copy.
filterChains - filterChains to apply during the copy.
overwrite - Whether or not the destination file should be overwritten if it already exists.
preserveLastModified - Whether or not the last modified time of the resulting file should be set to that of the source file.
encoding - the encoding used to read and write the files.
project - the project instance.
Since:
Ant 1.5

copyFile

public void copyFile(String sourceFile,
                     String destFile,
                     FilterSetCollection filters,
                     boolean overwrite)
            throws IOException
Convenience method to copy a file from a source to a destination specifying if token filtering must be used and if source files may overwrite newer destination files.
Parameters:
sourceFile - Name of file to copy from. Must not be null.
destFile - Name of file to copy to. Must not be null.
filters - the collection of filters to apply to this copy.
overwrite - Whether or not the destination file should be overwritten if it already exists.

copyFile

public void copyFile(String sourceFile,
                     String destFile,
                     FilterSetCollection filters,
                     boolean overwrite,
                     boolean preserveLastModified)
            throws IOException
Convenience method to copy a file from a source to a destination specifying if token filtering must be used, if source files may overwrite newer destination files and the last modified time of destFile file should be made equal to the last modified time of sourceFile.
Parameters:
sourceFile - Name of file to copy from. Must not be null.
destFile - Name of file to copy to. Must not be null.
filters - the collection of filters to apply to this copy.
overwrite - Whether or not the destination file should be overwritten if it already exists.
preserveLastModified - Whether or not the last modified time of the resulting file should be set to that of the source file.

copyFile

public void copyFile(String sourceFile,
                     String destFile,
                     FilterSetCollection filters,
                     boolean overwrite,
                     boolean preserveLastModified,
                     String encoding)
            throws IOException
Convenience method to copy a file from a source to a destination specifying if token filtering must be used, if source files may overwrite newer destination files and the last modified time of destFile file should be made equal to the last modified time of sourceFile.
Parameters:
sourceFile - Name of file to copy from. Must not be null.
destFile - Name of file to copy to. Must not be null.
filters - the collection of filters to apply to this copy.
overwrite - Whether or not the destination file should be overwritten if it already exists.
preserveLastModified - Whether or not the last modified time of the resulting file should be set to that of the source file.
encoding - the encoding used to read and write the files.
Since:
Ant 1.5

createNewFile

public boolean createNewFile(File f)
            throws IOException
This was originally an emulation of File.createNewFile for JDK 1.1, but it is now implemented using that method (Ant 1.6.3 onwards).

This method has historically not guaranteed that the operation was atomic. In its current implementation it is.

Parameters:
f - the file to be created.
Returns:
true if the file did not exist already.
Since:
Ant 1.5

createNewFile

public boolean createNewFile(File f,
                             boolean mkdirs)
            throws IOException
Create a new file, optionally creating parent directories.
Parameters:
f - the file to be created.
mkdirs - boolean whether to create parent directories.
Returns:
true if the file did not exist already.
Since:
Ant 1.6.3

createTempFile

public File createTempFile(String prefix,
                           String suffix,
                           File parentDir)
Create a temporary file in a given directory.

The file denoted by the returned abstract pathname did not exist before this method was invoked, any subsequent invocation of this method will yield a different file name.

The filename is prefixNNNNNsuffix where NNNN is a random number.

This method is different from File.createTempFile() of JDK 1.2 as it doesn't create the file itself. It uses the location pointed to by java.io.tmpdir when the parentDir attribute is null.

Parameters:
prefix - prefix before the random number.
suffix - file extension; include the '.'.
parentDir - Directory to create the temporary file in; java.io.tmpdir used if not specified.
Returns:
a File reference to the new temporary file.
Since:
Ant 1.5

createTempFile

public File createTempFile(String prefix,
                           String suffix,
                           File parentDir,
                           boolean deleteOnExit)
Create a temporary file in a given directory.

The file denoted by the returned abstract pathname did not exist before this method was invoked, any subsequent invocation of this method will yield a different file name.

The filename is prefixNNNNNsuffix where NNNN is a random number.

This method is different from File.createTempFile() of JDK 1.2 as it doesn't create the file itself. It uses the location pointed to by java.io.tmpdir when the parentDir attribute is null.

Parameters:
prefix - prefix before the random number.
suffix - file extension; include the '.'.
parentDir - Directory to create the temporary file in;
deleteOnExit - whether to set the tempfile for deletion on normal VM exit. java.io.tmpdir used if not specified.
Returns:
a File reference to the new temporary file.
Since:
Ant 1.7

delete

public static void delete(File file)
Delete the file with File.delete() if the argument is not null. Do nothing on a null argument.
Parameters:
file - file to delete.

dissect

public String[] dissect(String path)
Dissect the specified absolute path.
Parameters:
path - the path to dissect.
Returns:
String[] {root, remaining path}.
Since:
Ant 1.7

fileNameEquals

public boolean fileNameEquals(File f1,
                              File f2)
Compares two filenames.

Unlike java.io.File#equals this method will try to compare the absolute paths and "normalize" the filenames before comparing them.

Parameters:
f1 - the file whose name is to be compared.
f2 - the other file whose name is to be compared.
Returns:
true if the file are for the same file.
Since:
Ant 1.5.3

fromURI

public String fromURI(String uri)
Constructs a file path from a file: URI.

Will be an absolute path if the given URI is absolute.

Swallows '%' that are not followed by two characters, doesn't deal with non-ASCII characters.

Parameters:
uri - the URI designating a file in the local filesystem.
Returns:
the local file system path for the file.
Since:
Ant 1.6

getDefaultEncoding

public String getDefaultEncoding()
Get the default encoding. This is done by opening an InputStreamReader on a dummy InputStream and getting the encoding. Could use System.getProperty("file.encoding"), but cannot see where this is documented.
Returns:
the default file encoding.

getFileTimestampGranularity

public long getFileTimestampGranularity()
Get the granularity of file timestamps. The choice is made based on OS, which is incorrect--it should really be by filesystem. We do not have an easy way to probe for file systems, however, so this heuristic gives us a decent default.
Returns:
the difference, in milliseconds, which two file timestamps must have in order for the two files to be considered to have different timestamps.

getFileURL

public URL getFileURL(File file)
            throws MalformedURLException
Get the URL for a file taking into account # characters.
Parameters:
file - the file whose URL representation is required.
Returns:
The FileURL value.

getFileUtils

public static FileUtils getFileUtils()
Method to retrieve The FileUtils, which is shared by all users of this method.
Returns:
an instance of FileUtils.
Since:
Ant 1.6.3

getParentFile

public File getParentFile(File f)

Deprecated. since 1.7. Just use File.getParentFile directly.

This was originally an emulation of File.getParentFile for JDK 1.1, but it is now implemented using that method (Ant 1.6.3 onwards).
Parameters:
f - the file whose parent is required.
Returns:
the given file's parent, or null if the file does not have a parent.
Since:
1.10

getPath

public static String getPath(List pathStack)
Gets path from a List of Strings.
Parameters:
pathStack - List of Strings to be concated as a path.
Returns:
String, never null
Since:
Ant 1.7

getPath

public static String getPath(List pathStack,
                             char separatorChar)
Gets path from a List of Strings.
Parameters:
pathStack - List of Strings to be concated as a path.
separatorChar - char to be used as separator between names in path
Returns:
String, never null
Since:
Ant 1.7

getPathStack

public static String[] getPathStack(String path)
Gets all names of the path as an array of Strings.
Parameters:
path - to get names from
Returns:
Strings, never null
Since:
Ant 1.7

getRelativePath

public static String getRelativePath(File fromFile,
                                     File toFile)
            throws Exception
Calculates the relative path between two files.

Implementation note:
This function my throw an IOException if an I/O error occurs because its use of the canonical pathname may require filesystem queries.

Parameters:
fromFile - the File to calculate the path from
toFile - the File to calculate the path to
Returns:
the relative path between the files
Since:
Ant 1.7
See Also:
File.getCanonicalPath()

isAbsolutePath

public static boolean isAbsolutePath(String filename)
Verifies that the specified filename represents an absolute path. Differs from new java.io.File("filename").isAbsolute() in that a path beginning with a double file separator--signifying a Windows UNC--must at minimum match "\\a\b" to be considered an absolute path.
Parameters:
filename - the filename to be checked.
Returns:
true if the filename represents an absolute path.
Since:
Ant 1.6.3

isContextRelativePath

public static boolean isContextRelativePath(String filename)
On DOS and NetWare, the evaluation of certain file specifications is context-dependent. These are filenames beginning with a single separator (relative to current root directory) and filenames with a drive specification and no intervening separator (relative to current directory of the specified root).
Parameters:
filename - the filename to evaluate.
Returns:
true if the filename is relative to system context.
Since:
Ant 1.7

isLeadingPath

public boolean isLeadingPath(File leading,
                             File path)
Learn whether one path "leads" another.
Parameters:
leading - The leading path, must not be null, must be absolute.
path - The path to remove from, must not be null, must be absolute.
Returns:
true if path starts with leading; false otherwise.
Since:
Ant 1.7

isSymbolicLink

public boolean isSymbolicLink(File parent,
                              String name)
            throws IOException
Checks whether a given file is a symbolic link.

It doesn't really test for symbolic links but whether the canonical and absolute paths of the file are identical--this may lead to false positives on some platforms.

Parameters:
parent - the parent directory of the file to test
name - the name of the file to test.
Returns:
true if the file is a symbolic link.
Since:
Ant 1.5

isUpToDate

public boolean isUpToDate(File source,
                          File dest)
Returns true if the source is older than the dest.
Parameters:
source - source file (should be the older).
dest - dest file (should be the newer).
Returns:
true if the source is older than the dest, taking the granularity into account.
Since:
Ant 1.6.3

isUpToDate

public boolean isUpToDate(File source,
                          File dest,
                          long granularity)
Returns true if the source is older than the dest. If the dest file does not exist, then the test returns false; it is implicitly not up do date.
Parameters:
source - source file (should be the older).
dest - dest file (should be the newer).
granularity - an offset added to the source time.
Returns:
true if the source is older than the dest after accounting for granularity.
Since:
Ant 1.6.3

isUpToDate

public boolean isUpToDate(long sourceTime,
                          long destTime)
Compare two timestamps for being up to date using the current granularity.
Parameters:
sourceTime - timestamp of source file.
destTime - timestamp of dest file.
Returns:
true if the dest file is considered up to date.

isUpToDate

public boolean isUpToDate(long sourceTime,
                          long destTime,
                          long granularity)
Compare two timestamps for being up to date using the specified granularity.
Parameters:
sourceTime - timestamp of source file.
destTime - timestamp of dest file.
granularity - os/filesys granularity.
Returns:
true if the dest file is considered up to date.

newFileUtils

public static FileUtils newFileUtils()

Deprecated. since 1.7. Use getFileUtils instead, FileUtils do not have state.

Factory method.
Returns:
a new instance of FileUtils.

normalize

public File normalize(String path)
"Normalize" the given absolute path.

This includes:

  • Uppercase the drive letter if there is one.
  • Remove redundant slashes after the drive spec.
  • Resolve all ./, .\, ../ and ..\ sequences.
  • DOS style paths that start with a drive letter will have \ as the separator.
Unlike File.getCanonicalPath() this method specifically does not resolve symbolic links.
Parameters:
path - the path to be normalized.
Returns:
the normalized version of the path.

readFully

public static final String readFully(Reader rdr)
            throws IOException
Read from reader till EOF.
Parameters:
rdr - the reader from which to read.
Returns:
the contents read out of the given reader.

readFully

public static final String readFully(Reader rdr,
                                     int bufferSize)
            throws IOException
Read from reader till EOF.
Parameters:
rdr - the reader from which to read.
bufferSize - the buffer size to use when reading.
Returns:
the contents read out of the given reader.

removeLeadingPath

public String removeLeadingPath(File leading,
                                File path)
Removes a leading path from a second path.
Parameters:
leading - The leading path, must not be null, must be absolute.
path - The path to remove from, must not be null, must be absolute.
Returns:
path's normalized absolute if it doesn't start with leading; path's path with leading's path removed otherwise.
Since:
Ant 1.5

rename

public void rename(File from,
                   File to)
            throws IOException
Renames a file, even if that involves crossing file system boundaries.

This will remove to (if it exists), ensure that to's parent directory exists and move from, which involves deleting from as well.

Parameters:
from - the file to move.
to - the new file name.
Since:
Ant 1.6

resolveFile

public File resolveFile(File file,
                        String filename)
Interpret the filename as a file relative to the given file unless the filename already represents an absolute filename. Differs from new File(file, filename) in that the resulting File's path will always be a normalized, absolute pathname. Also, if it is determined that filename is context-relative, file will be discarded and the reference will be resolved using available context/state information about the filesystem.
Parameters:
file - the "reference" file for relative paths. This instance must be an absolute file and must not contain "./" or "../" sequences (same for \ instead of /). If it is null, this call is equivalent to new java.io.File(filename).getAbsoluteFile().
filename - a file name.
Returns:
an absolute file.

setFileLastModified

public void setFileLastModified(File file,
                                long time)
Calls File.setLastModified(long time). Originally written to to dynamically bind to that call on Java1.2+.
Parameters:
file - the file whose modified time is to be set
time - the time to which the last modified time is to be set. if this is -1, the current time is used.

toURI

public String toURI(String path)
Parameters:
path - the path in the local file system.
Returns:
the URI version of the local path.
Since:
Ant 1.6

toVMSPath

public String toVMSPath(File f)
Returns a VMS String representation of a File object. This is useful since the JVM by default internally converts VMS paths to Unix style. The returned String is always an absolute path.
Parameters:
f - The File to get the VMS path for.
Returns:
The absolute VMS path to f.

translatePath

public static String translatePath(String toProcess)
Translate a path into its native (platform specific) format.

This method uses PathTokenizer to separate the input path into its components. This handles DOS style paths in a relatively sensible way. The file separators are then converted to their platform specific versions.

Parameters:
toProcess - The path to be translated. May be null.
Returns:
the native version of the specified path or an empty string if the path is null or empty.
Since:
ant 1.7