Package org.h2.store.fs
Class FileUtils
java.lang.Object
org.h2.store.fs.FileUtils
This utility class contains utility functions that use the file system
abstraction.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final FileAttribute<?>[]
No file attributes.static final Set
<? extends OpenOption> static final Set
<? extends OpenOption> static final Set
<? extends OpenOption> static final Set
<? extends OpenOption> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic boolean
Check if the file is writable.static void
createDirectories
(String dir) Create the directory and all required parent directories.static void
createDirectory
(String directoryName) Create a directory (all required parent directories must already exist).static boolean
createFile
(String fileName) Create a new file.static String
createTempFile
(String prefix, String suffix, boolean inTempDir) Create a new temporary file.static void
Delete a file or directory if it exists.static void
deleteRecursive
(String path, boolean tryOnly) Delete a directory or file and all subdirectories and files.static boolean
Checks if a file exists.static String
Get the file or directory name (the last element of the path).static String
Get the parent directory of a file or directory.static boolean
isAbsolute
(String fileName) Check if the file name includes a path.static boolean
isDirectory
(String fileName) Check if it is a file or a directory.static long
lastModified
(String fileName) Get the last modified date of a file.static Set
<? extends OpenOption> modeToOptions
(String mode) Convert the string representation to a set.static void
Rename a file if this is allowed.static void
moveAtomicReplace
(String source, String target) Rename a file if this is allowed, and try to atomically replace an existing file.static BufferedReader
newBufferedReader
(String fileName, Charset charset) Create a buffered reader to read from the file.newDirectoryStream
(String path) List the files and directories in the given directory.static InputStream
newInputStream
(String fileName) Create an input stream to read from the file.static OutputStream
newOutputStream
(String fileName, boolean append) Create an output stream to write into the file.static FileChannel
Open a random access file object.static void
readFully
(FileChannel channel, ByteBuffer dst) Fully read from the file.static boolean
setReadOnly
(String fileName) Disable the ability to write.static long
Get the size of a file in bytes This method is similar to Java 7java.nio.file.attribute.Attributes.
static String
toRealPath
(String fileName) Get the canonical file or directory name.static boolean
Try to delete a file or directory (ignoring errors).static String
Get the unwrapped file name (without wrapper prefixes if wrapping / delegating file systems are used).static void
writeFully
(FileChannel channel, ByteBuffer src) Fully write to the file.
-
Field Details
-
R
-
RW
-
RWS
-
RWD
-
NO_ATTRIBUTES
No file attributes.
-
-
Constructor Details
-
FileUtils
public FileUtils()
-
-
Method Details
-
exists
Checks if a file exists. This method is similar to Java 7java.nio.file.Path.exists
.- Parameters:
fileName
- the file name- Returns:
- true if it exists
-
createDirectory
Create a directory (all required parent directories must already exist). This method is similar to Java 7java.nio.file.Path.createDirectory
.- Parameters:
directoryName
- the directory name
-
createFile
Create a new file. This method is similar to Java 7java.nio.file.Path.createFile
, but returns false instead of throwing a exception if the file already existed.- Parameters:
fileName
- the file name- Returns:
- true if creating was successful
-
delete
Delete a file or directory if it exists. Directories may only be deleted if they are empty. This method is similar to Java 7java.nio.file.Path.deleteIfExists
.- Parameters:
path
- the file or directory name
-
toRealPath
Get the canonical file or directory name. This method is similar to Java 7java.nio.file.Path.toRealPath
.- Parameters:
fileName
- the file name- Returns:
- the normalized file name
-
getParent
Get the parent directory of a file or directory. This method returns null if there is no parent. This method is similar to Java 7java.nio.file.Path.getParent
.- Parameters:
fileName
- the file or directory name- Returns:
- the parent directory name
-
isAbsolute
Check if the file name includes a path. This method is similar to Java 7java.nio.file.Path.isAbsolute
.- Parameters:
fileName
- the file name- Returns:
- if the file name is absolute
-
move
Rename a file if this is allowed. This method is similar to Java 7java.nio.file.Files.move
.- Parameters:
source
- the old fully qualified file nametarget
- the new fully qualified file name
-
moveAtomicReplace
Rename a file if this is allowed, and try to atomically replace an existing file. This method is similar to Java 7java.nio.file.Files.move
.- Parameters:
source
- the old fully qualified file nametarget
- the new fully qualified file name
-
getName
Get the file or directory name (the last element of the path). This method is similar to Java 7java.nio.file.Path.getName
.- Parameters:
path
- the directory and file name- Returns:
- just the file name
-
newDirectoryStream
List the files and directories in the given directory. This method is similar to Java 7java.nio.file.Path.newDirectoryStream
.- Parameters:
path
- the directory- Returns:
- the list of fully qualified file names
-
lastModified
Get the last modified date of a file. This method is similar to Java 7java.nio.file.attribute.Attributes. readBasicFileAttributes(file).lastModified().toMillis()
- Parameters:
fileName
- the file name- Returns:
- the last modified date
-
size
Get the size of a file in bytes This method is similar to Java 7java.nio.file.attribute.Attributes. readBasicFileAttributes(file).size()
- Parameters:
fileName
- the file name- Returns:
- the size in bytes
-
isDirectory
Check if it is a file or a directory.java.nio.file.attribute.Attributes. readBasicFileAttributes(file).isDirectory()
- Parameters:
fileName
- the file or directory name- Returns:
- true if it is a directory
-
open
Open a random access file object. This method is similar to Java 7java.nio.channels.FileChannel.open
.- Parameters:
fileName
- the file namemode
- the access mode. Supported are r, rw, rws, rwd- Returns:
- the file object
- Throws:
IOException
- on failure
-
newInputStream
Create an input stream to read from the file. This method is similar to Java 7java.nio.file.Files.newInputStream()
.- Parameters:
fileName
- the file name- Returns:
- the input stream
- Throws:
IOException
- on failure
-
newBufferedReader
Create a buffered reader to read from the file. This method is similar tojava.nio.file.Files.newBufferedReader()
.- Parameters:
fileName
- the file namecharset
- the charset- Returns:
- the buffered reader
- Throws:
IOException
- on failure
-
newOutputStream
Create an output stream to write into the file. This method is similar tojava.nio.file.Files.newOutputStream()
.- Parameters:
fileName
- the file nameappend
- if true, the file will grow, if false, the file will be truncated first- Returns:
- the output stream
- Throws:
IOException
- on failure
-
canWrite
Check if the file is writable. This method is similar to Java 7java.nio.file.Path.checkAccess(AccessMode.WRITE)
- Parameters:
fileName
- the file name- Returns:
- if the file is writable
-
setReadOnly
Disable the ability to write. The file can still be deleted afterwards.- Parameters:
fileName
- the file name- Returns:
- true if the call was successful
-
unwrap
Get the unwrapped file name (without wrapper prefixes if wrapping / delegating file systems are used).- Parameters:
fileName
- the file name- Returns:
- the unwrapped
-
deleteRecursive
Delete a directory or file and all subdirectories and files.- Parameters:
path
- the pathtryOnly
- whether errors should be ignored
-
createDirectories
Create the directory and all required parent directories.- Parameters:
dir
- the directory name
-
tryDelete
Try to delete a file or directory (ignoring errors).- Parameters:
path
- the file or directory name- Returns:
- true if it worked
-
createTempFile
public static String createTempFile(String prefix, String suffix, boolean inTempDir) throws IOException Create a new temporary file.- Parameters:
prefix
- the prefix of the file name (including directory name if required)suffix
- the suffixinTempDir
- if the file should be stored in the temporary directory- Returns:
- the name of the created file
- Throws:
IOException
- on failure
-
readFully
Fully read from the file. This will read all remaining bytes, or throw an EOFException if not successful.- Parameters:
channel
- the file channeldst
- the byte buffer- Throws:
IOException
- on failure
-
writeFully
Fully write to the file. This will write all remaining bytes.- Parameters:
channel
- the file channelsrc
- the byte buffer- Throws:
IOException
- on failure
-
modeToOptions
Convert the string representation to a set.- Parameters:
mode
- the mode as a string- Returns:
- the set
-