Package org.h2.store.fs
Class FilePath
java.lang.Object
org.h2.store.fs.FilePath
- Direct Known Subclasses:
FilePathDisk
,FilePathMem
,FilePathNioMem
,FilePathWrapper
,FilePathZip
A path to a file. It similar to the Java 7
java.nio.file.Path
,
but simpler, and works with older versions of Java. It also implements the
relevant methods found in java.nio.file.FileSystem
and
FileSystems
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final FilePath
The complete path (which may be absolute or relative, depending on the file system).private static final ConcurrentHashMap
<String, FilePath> private static String
The prefix for temporary files.private static long
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract boolean
canWrite()
Check if the file is writable.abstract void
Create a directory (all required parent directories already exist).abstract boolean
Create a new file.createTempFile
(String suffix, boolean inTempDir) Create a new temporary file.abstract void
delete()
Delete a file or directory if it exists.abstract boolean
exists()
Checks if a file exists.static FilePath
Get the file path object for the given path.getName()
Get the file or directory name (the last element of the path).private static String
getNextTempFileNamePart
(boolean newRandom) Get the next temporary file name part (the part in the middle).abstract FilePath
Get the parent directory of a file or directory.abstract FilePath
Convert a file to a path.abstract String
Get the scheme (prefix) for this file provider.abstract boolean
Check if the file name includes a path.abstract boolean
Check if it is a file or a directory.abstract long
Get the last modified date of a fileabstract void
Rename a file if this is allowed.List the files and directories in the given directory.static final OutputStream
newFileChannelOutputStream
(FileChannel channel, boolean append) Create a new output stream from the channel.Create an input stream to read from the file.newOutputStream
(boolean append) Create an output stream to write into the file.abstract FileChannel
Open a random access file object.static void
Register a file provider.abstract boolean
Disable the ability to write.abstract long
size()
Get the size of a file in bytesabstract FilePath
Normalize a file name.toString()
Get the string representation.static void
unregister
(FilePath provider) Unregister a file provider.unwrap()
Get the unwrapped file name (without wrapper prefixes if wrapping / delegating file systems are used).
-
Field Details
-
defaultProvider
-
providers
-
tempRandom
The prefix for temporary files. -
tempSequence
private static long tempSequence -
name
The complete path (which may be absolute or relative, depending on the file system).
-
-
Constructor Details
-
FilePath
public FilePath()
-
-
Method Details
-
get
Get the file path object for the given path. Windows-style '\' is replaced with '/'.- Parameters:
path
- the path- Returns:
- the file path object
-
register
Register a file provider.- Parameters:
provider
- the file provider
-
unregister
Unregister a file provider.- Parameters:
provider
- the file provider
-
size
public abstract long size()Get the size of a file in bytes- Returns:
- the size in bytes
-
moveTo
Rename a file if this is allowed.- Parameters:
newName
- the new fully qualified file nameatomicReplace
- whether the move should be atomic, and the target file should be replaced if it exists and replacing is possible
-
createFile
public abstract boolean createFile()Create a new file.- Returns:
- true if creating was successful
-
exists
public abstract boolean exists()Checks if a file exists.- Returns:
- true if it exists
-
delete
public abstract void delete()Delete a file or directory if it exists. Directories may only be deleted if they are empty. -
newDirectoryStream
List the files and directories in the given directory.- Returns:
- the list of fully qualified file names
-
toRealPath
Normalize a file name.- Returns:
- the normalized file name
-
getParent
Get the parent directory of a file or directory.- Returns:
- the parent directory name
-
isDirectory
public abstract boolean isDirectory()Check if it is a file or a directory.- Returns:
- true if it is a directory
-
isAbsolute
public abstract boolean isAbsolute()Check if the file name includes a path.- Returns:
- if the file name is absolute
-
lastModified
public abstract long lastModified()Get the last modified date of a file- Returns:
- the last modified date
-
canWrite
public abstract boolean canWrite()Check if the file is writable.- Returns:
- if the file is writable
-
createDirectory
public abstract void createDirectory()Create a directory (all required parent directories already exist). -
getName
Get the file or directory name (the last element of the path).- Returns:
- the last element of the path
-
newOutputStream
Create an output stream to write into the file.- Parameters:
append
- if true, the file will grow, if false, the file will be truncated first- Returns:
- the output stream
- Throws:
IOException
- If an I/O error occurs
-
newFileChannelOutputStream
public static final OutputStream newFileChannelOutputStream(FileChannel channel, boolean append) throws IOException Create a new output stream from the channel.- Parameters:
channel
- the file channelappend
- true for append mode, false for truncate and overwrite- Returns:
- the output stream
- Throws:
IOException
- on I/O exception
-
open
Open a random access file object.- Parameters:
mode
- the access mode. Supported are r, rw, rws, rwd- Returns:
- the file object
- Throws:
IOException
- If an I/O error occurs
-
newInputStream
Create an input stream to read from the file.- Returns:
- the input stream
- Throws:
IOException
- If an I/O error occurs
-
setReadOnly
public abstract boolean setReadOnly()Disable the ability to write.- Returns:
- true if the call was successful
-
createTempFile
Create a new temporary file.- Parameters:
suffix
- the suffixinTempDir
- if the file should be stored in the temporary directory- Returns:
- the name of the created file
- Throws:
IOException
- on failure
-
getNextTempFileNamePart
Get the next temporary file name part (the part in the middle).- Parameters:
newRandom
- if the random part of the filename should change- Returns:
- the file name part
-
toString
Get the string representation. The returned string can be used to construct a new object. -
getScheme
Get the scheme (prefix) for this file provider. This is similar tojava.nio.file.spi.FileSystemProvider.getScheme
.- Returns:
- the scheme
-
getPath
Convert a file to a path. This is similar tojava.nio.file.spi.FileSystemProvider.getPath
, but may return an object even if the scheme doesn't match in case of the default file provider.- Parameters:
path
- the path- Returns:
- the file path object
-
unwrap
Get the unwrapped file name (without wrapper prefixes if wrapping / delegating file systems are used).- Returns:
- the unwrapped path
-