public final class FileUtils
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
static class |
FileUtils.OpenFileResult
Indicates whether a file was successfully opened.
|
Modifier and Type | Field and Description |
---|---|
static java.util.List<java.lang.Character> |
INVALID_NAME |
static java.util.List<java.lang.Character> |
INVALID_PATH
list of characters not allowed in filenames
|
Constructor and Description |
---|
FileUtils() |
Modifier and Type | Method and Description |
---|---|
static void |
createParentDir(java.io.File f)
Tries to create the ancestor directories of file f.
|
static void |
createParentDir(java.io.File f,
java.lang.String eMsg)
Tries to create the ancestor directories of file f.
|
static void |
createRestrictedDirectory(java.io.File directory)
Creates a new directory with minimum permissions.
|
static void |
createRestrictedFile(java.io.File file,
boolean writableByOwner)
Creates a new file with minimum permissions.
|
static void |
deleteWithErrMesg(java.io.File f)
Tries to delete file f.
|
static void |
deleteWithErrMesg(java.io.File f,
java.lang.String eMsg)
Tries to delete file f.
|
static java.lang.String |
displayablePath(java.lang.String path)
Returns a String that is suitable for using in GUI elements for
displaying (long) paths to users.
|
static java.lang.String |
displayablePath(java.lang.String path,
int visibleChars)
Return a String that is suitable for using in GUI elements for displaying
paths to users.
|
static java.lang.String |
getContentOfReader(java.io.Reader r) |
static java.lang.String |
getContentOfStream(java.io.InputStream is)
utility method which can read from any stream as one long String
|
static java.lang.String |
getContentOfStream(java.io.InputStream is,
java.lang.String encoding)
utility method which can read from any stream as one long String
|
static java.nio.channels.FileLock |
getFileLock(java.lang.String path,
boolean shared,
boolean allowBlock)
This will return a lock to the file specified.
|
static byte[] |
getFileMD5Sum(java.io.File file,
java.lang.String algorithm) |
static java.lang.String |
loadFileAsString(java.io.File f) |
static java.lang.String |
loadFileAsString(java.io.File f,
java.lang.String encoding) |
static void |
recursiveDelete(java.io.File file,
java.io.File base)
Recursively delete everything under a directory.
|
static java.lang.String |
sanitizeFileName(java.lang.String filename)
Given an input, return a sanitized form of the input suitable for use as
a file/directory name
|
static java.lang.String |
sanitizeFileName(java.lang.String filename,
char substitute) |
static java.lang.String |
sanitizePath(java.lang.String path)
Clean up a string by removing characters that can't appear in a local
file name.
|
static java.lang.String |
sanitizePath(java.lang.String path,
char substitute) |
static void |
saveFile(java.lang.String content,
java.io.File f)
Method to save String as file in UTF-8 encoding.
|
static void |
saveFile(java.lang.String content,
java.io.File f,
java.lang.String encoding)
Method to save String as file in specified encoding/.
|
static void |
showCouldNotOpenDialog(java.awt.Component frame,
java.lang.String message)
Show a dialog informing the user that the file could not be opened
|
static void |
showCouldNotOpenFileDialog(java.awt.Component frame,
java.lang.String filePath,
FileUtils.OpenFileResult reason)
Show an error dialog indicating the file could not be opened, with a particular reason
|
static void |
showCouldNotOpenFilepathDialog(java.awt.Component frame,
java.lang.String filePath)
Show a generic error dialog indicating the file could not be opened
|
static void |
showReadOnlyDialog(java.awt.Component frame)
Show a dialog informing the user that the file is currently read-only
|
static DirectoryValidator.DirectoryCheckResults |
testDirectoryPermissions(java.io.File file)
Ensure that the parent directory of the file exists and that we are
able to create and access files within this directory
|
static FileUtils.OpenFileResult |
testFilePermissions(java.io.File file)
Verify that a given file object points to a real, accessible plain file.
|
public static final java.util.List<java.lang.Character> INVALID_PATH
public static final java.util.List<java.lang.Character> INVALID_NAME
public static java.lang.String sanitizePath(java.lang.String path)
path
- the path to sanitizepublic static java.lang.String sanitizePath(java.lang.String path, char substitute)
public static java.lang.String sanitizeFileName(java.lang.String filename)
filename
- the filename to sanitize.public static java.lang.String sanitizeFileName(java.lang.String filename, char substitute)
public static void createRestrictedDirectory(java.io.File directory) throws java.io.IOException
directory
- directory to be createdjava.io.IOException
- if IO failspublic static void createRestrictedFile(java.io.File file, boolean writableByOwner) throws java.io.IOException
file
- path to filewritableByOwner
- true if can be writable by ownerjava.io.IOException
- if IO failspublic static void createParentDir(java.io.File f, java.lang.String eMsg) throws java.io.IOException
f
- file to provide parent directoryeMsg
- - the message to use for the exception. null
if the file name is to be used.java.io.IOException
- if the directory can't be created and doesn't exist.public static void createParentDir(java.io.File f) throws java.io.IOException
f
- file which parent will be createdjava.io.IOException
- if the directory can't be created and doesn't exist.public static void deleteWithErrMesg(java.io.File f, java.lang.String eMsg)
f
- the file to be deletedeMsg
- the message to print on failure (or null to print the
the file name).public static void deleteWithErrMesg(java.io.File f)
f
- the file to be deletedpublic static DirectoryValidator.DirectoryCheckResults testDirectoryPermissions(java.io.File file)
file
- the File
representing a Java Policy file to testDirectoryValidator.DirectoryCheckResults
object representing the results of the testpublic static FileUtils.OpenFileResult testFilePermissions(java.io.File file)
file
- the File
to verifyFileUtils.OpenFileResult
representing the accessibility level of the filepublic static void showReadOnlyDialog(java.awt.Component frame)
frame
- a JFrame
to act as parent to this dialogpublic static void showCouldNotOpenFilepathDialog(java.awt.Component frame, java.lang.String filePath)
frame
- a JFrame
to act as parent to this dialogfilePath
- a String
representing the path to the file we failed to openpublic static void showCouldNotOpenFileDialog(java.awt.Component frame, java.lang.String filePath, FileUtils.OpenFileResult reason)
frame
- a JFrame
to act as parent to this dialogfilePath
- a String
representing the path to the file we failed to openreason
- a FileUtils.OpenFileResult
specifying more precisely why we failed to open the filepublic static void showCouldNotOpenDialog(java.awt.Component frame, java.lang.String message)
frame
- a JFrame
to act as parent to this dialogmessage
- a String
giving the specific reason the file could not be openedpublic static java.lang.String displayablePath(java.lang.String path)
path
- a path that should be shortenedpublic static java.lang.String displayablePath(java.lang.String path, int visibleChars)
path
- a path that should be shortedvisibleChars
- the maximum number of characters that path should fit
into. Also the length of the returned stringpublic static void recursiveDelete(java.io.File file, java.io.File base) throws java.io.IOException
file
- the file object representing what to delete. Can be either a
file or a directory.base
- the directory under which the file and its subdirectories must be locatedjava.io.IOException
- on an io exception or if trying to delete something
outside the basepublic static java.nio.channels.FileLock getFileLock(java.lang.String path, boolean shared, boolean allowBlock) throws java.io.FileNotFoundException
path
- File path to file we want to lock.shared
- Specify if the lock will be a shared lock.allowBlock
- Specify if we should block when we can not get the
lock. Getting a shared lock will always block.java.io.FileNotFoundException
- If the file does not exist.public static void saveFile(java.lang.String content, java.io.File f) throws java.io.IOException
content
- which will be saved as it is saved in this Stringf
- file to be saved. No warnings providedjava.io.IOException
- if save failspublic static void saveFile(java.lang.String content, java.io.File f, java.lang.String encoding) throws java.io.IOException
content
- which will be saved as it is saved in this Stringf
- file to be saved. No warnings providedencoding
- of output byte representationjava.io.IOException
- if save failspublic static java.lang.String getContentOfStream(java.io.InputStream is, java.lang.String encoding) throws java.io.IOException
is
- streamencoding
- the encoding to use to convert the bytes from the streamjava.io.IOException
- if connection can't be established or resource does not existpublic static java.lang.String getContentOfReader(java.io.Reader r) throws java.io.IOException
java.io.IOException
public static java.lang.String getContentOfStream(java.io.InputStream is) throws java.io.IOException
is
- streamjava.io.IOException
- if connection can't be established or resource does not existpublic static java.lang.String loadFileAsString(java.io.File f) throws java.io.IOException
java.io.IOException
public static java.lang.String loadFileAsString(java.io.File f, java.lang.String encoding) throws java.io.IOException
java.io.IOException
public static byte[] getFileMD5Sum(java.io.File file, java.lang.String algorithm) throws java.security.NoSuchAlgorithmException, java.io.FileNotFoundException, java.io.IOException
java.security.NoSuchAlgorithmException
java.io.FileNotFoundException
java.io.IOException