Package org.h2.store.fs
Class FilePathWrapper
- java.lang.Object
-
- org.h2.store.fs.FilePath
-
- org.h2.store.fs.FilePathWrapper
-
- Direct Known Subclasses:
FilePathAsync
,FilePathCache
,FilePathEncrypt
,FilePathNioMapped
,FilePathRec
,FilePathRetryOnInterrupt
,FilePathSplit
public abstract class FilePathWrapper extends FilePath
The base class for wrapping / delegating file systems such as the split file system.
-
-
Constructor Summary
Constructors Constructor Description FilePathWrapper()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
canWrite()
Check if the file is writable.private FilePathWrapper
create(java.lang.String path, FilePath base)
void
createDirectory()
Create a directory (all required parent directories already exist).boolean
createFile()
Create a new file.FilePath
createTempFile(java.lang.String suffix, boolean inTempDir)
Create a new temporary file.void
delete()
Delete a file or directory if it exists.boolean
exists()
Checks if a file exists.protected FilePath
getBase()
FilePath
getParent()
Get the parent directory of a file or directory.FilePathWrapper
getPath(java.lang.String path)
Convert a file to a path.protected java.lang.String
getPrefix()
boolean
isAbsolute()
Check if the file name includes a path.boolean
isDirectory()
Check if it is a file or a directory.long
lastModified()
Get the last modified date of a filevoid
moveTo(FilePath newName, boolean atomicReplace)
Rename a file if this is allowed.java.util.List<FilePath>
newDirectoryStream()
List the files and directories in the given directory.java.io.InputStream
newInputStream()
Create an input stream to read from the file.java.io.OutputStream
newOutputStream(boolean append)
Create an output stream to write into the file.java.nio.channels.FileChannel
open(java.lang.String mode)
Open a random access file object.boolean
setReadOnly()
Disable the ability to write.long
size()
Get the size of a file in bytesFilePath
toRealPath()
Normalize a file name.FilePath
unwrap()
Get the unwrapped file name (without wrapper prefixes if wrapping / delegating file systems are used).protected FilePath
unwrap(java.lang.String path)
Get the base path for the given wrapped path.FilePathWrapper
wrap(FilePath base)
Create a wrapped path instance for the given base path.-
Methods inherited from class org.h2.store.fs.FilePath
get, getName, getScheme, newFileChannelOutputStream, register, toString, unregister
-
-
-
-
Field Detail
-
base
private FilePath base
-
-
Method Detail
-
getPath
public FilePathWrapper getPath(java.lang.String path)
Description copied from class:FilePath
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.
-
wrap
public FilePathWrapper wrap(FilePath base)
Create a wrapped path instance for the given base path.- Parameters:
base
- the base path- Returns:
- the wrapped path
-
unwrap
public FilePath unwrap()
Description copied from class:FilePath
Get the unwrapped file name (without wrapper prefixes if wrapping / delegating file systems are used).
-
create
private FilePathWrapper create(java.lang.String path, FilePath base)
-
getPrefix
protected java.lang.String getPrefix()
-
unwrap
protected FilePath unwrap(java.lang.String path)
Get the base path for the given wrapped path.- Parameters:
path
- the path including the scheme prefix- Returns:
- the base file path
-
getBase
protected FilePath getBase()
-
canWrite
public boolean canWrite()
Description copied from class:FilePath
Check if the file is writable.
-
createDirectory
public void createDirectory()
Description copied from class:FilePath
Create a directory (all required parent directories already exist).- Specified by:
createDirectory
in classFilePath
-
createFile
public boolean createFile()
Description copied from class:FilePath
Create a new file.- Specified by:
createFile
in classFilePath
- Returns:
- true if creating was successful
-
delete
public void delete()
Description copied from class:FilePath
Delete a file or directory if it exists. Directories may only be deleted if they are empty.
-
exists
public boolean exists()
Description copied from class:FilePath
Checks if a file exists.
-
getParent
public FilePath getParent()
Description copied from class:FilePath
Get the parent directory of a file or directory.
-
isAbsolute
public boolean isAbsolute()
Description copied from class:FilePath
Check if the file name includes a path.- Specified by:
isAbsolute
in classFilePath
- Returns:
- if the file name is absolute
-
isDirectory
public boolean isDirectory()
Description copied from class:FilePath
Check if it is a file or a directory.- Specified by:
isDirectory
in classFilePath
- Returns:
- true if it is a directory
-
lastModified
public long lastModified()
Description copied from class:FilePath
Get the last modified date of a file- Specified by:
lastModified
in classFilePath
- Returns:
- the last modified date
-
toRealPath
public FilePath toRealPath()
Description copied from class:FilePath
Normalize a file name.- Specified by:
toRealPath
in classFilePath
- Returns:
- the normalized file name
-
newDirectoryStream
public java.util.List<FilePath> newDirectoryStream()
Description copied from class:FilePath
List the files and directories in the given directory.- Specified by:
newDirectoryStream
in classFilePath
- Returns:
- the list of fully qualified file names
-
moveTo
public void moveTo(FilePath newName, boolean atomicReplace)
Description copied from class:FilePath
Rename a file if this is allowed.
-
newInputStream
public java.io.InputStream newInputStream() throws java.io.IOException
Description copied from class:FilePath
Create an input stream to read from the file.- Overrides:
newInputStream
in classFilePath
- Returns:
- the input stream
- Throws:
java.io.IOException
- If an I/O error occurs
-
newOutputStream
public java.io.OutputStream newOutputStream(boolean append) throws java.io.IOException
Description copied from class:FilePath
Create an output stream to write into the file.- Overrides:
newOutputStream
in classFilePath
- Parameters:
append
- if true, the file will grow, if false, the file will be truncated first- Returns:
- the output stream
- Throws:
java.io.IOException
- If an I/O error occurs
-
open
public java.nio.channels.FileChannel open(java.lang.String mode) throws java.io.IOException
Description copied from class:FilePath
Open a random access file object.
-
setReadOnly
public boolean setReadOnly()
Description copied from class:FilePath
Disable the ability to write.- Specified by:
setReadOnly
in classFilePath
- Returns:
- true if the call was successful
-
size
public long size()
Description copied from class:FilePath
Get the size of a file in bytes
-
createTempFile
public FilePath createTempFile(java.lang.String suffix, boolean inTempDir) throws java.io.IOException
Description copied from class:FilePath
Create a new temporary file.- Overrides:
createTempFile
in classFilePath
- Parameters:
suffix
- the suffixinTempDir
- if the file should be stored in the temporary directory- Returns:
- the name of the created file
- Throws:
java.io.IOException
- on failure
-
-