Package org.h2.dev.fs

Class FilePathZip2

java.lang.Object
org.h2.store.fs.FilePath
org.h2.dev.fs.FilePathZip2

public class FilePathZip2 extends FilePath
This is a read-only file system that allows to access databases stored in a .zip or .jar file. The problem of this file system is that data is always accessed as a stream. This implementation allows to stack file systems.
  • Constructor Details

    • FilePathZip2

      public FilePathZip2()
  • Method Details

    • register

      public static FilePathZip2 register()
      Register the file system.
      Returns:
      the instance
    • getPath

      public FilePathZip2 getPath(String path)
      Description copied from class: FilePath
      Convert a file to a path. This is similar to java.nio.file.spi.FileSystemProvider.getPath, but may return an object even if the scheme doesn't match in case of the default file provider.
      Specified by:
      getPath in class FilePath
      Parameters:
      path - the path
      Returns:
      the file path object
    • createDirectory

      public void createDirectory()
      Description copied from class: FilePath
      Create a directory (all required parent directories already exist).
      Specified by:
      createDirectory in class FilePath
    • createFile

      public boolean createFile()
      Description copied from class: FilePath
      Create a new file.
      Specified by:
      createFile in class FilePath
      Returns:
      true if creating was successful
    • createTempFile

      public FilePath createTempFile(String suffix, boolean inTempDir) throws IOException
      Description copied from class: FilePath
      Create a new temporary file.
      Overrides:
      createTempFile in class FilePath
      Parameters:
      suffix - the suffix
      inTempDir - if the file should be stored in the temporary directory
      Returns:
      the name of the created file
      Throws:
      IOException - on failure
    • 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.
      Specified by:
      delete in class FilePath
    • exists

      public boolean exists()
      Description copied from class: FilePath
      Checks if a file exists.
      Specified by:
      exists in class FilePath
      Returns:
      true if it exists
    • lastModified

      public long lastModified()
      Description copied from class: FilePath
      Get the last modified date of a file
      Specified by:
      lastModified in class FilePath
      Returns:
      the last modified date
    • getParent

      public FilePath getParent()
      Description copied from class: FilePath
      Get the parent directory of a file or directory.
      Specified by:
      getParent in class FilePath
      Returns:
      the parent directory name
    • isAbsolute

      public boolean isAbsolute()
      Description copied from class: FilePath
      Check if the file name includes a path.
      Specified by:
      isAbsolute in class FilePath
      Returns:
      if the file name is absolute
    • unwrap

      public FilePath unwrap()
      Description copied from class: FilePath
      Get the unwrapped file name (without wrapper prefixes if wrapping / delegating file systems are used).
      Overrides:
      unwrap in class FilePath
      Returns:
      the unwrapped path
    • isDirectory

      public boolean isDirectory()
      Description copied from class: FilePath
      Check if it is a file or a directory.
      Specified by:
      isDirectory in class FilePath
      Returns:
      true if it is a directory
    • isRegularFile

      public boolean isRegularFile()
      Description copied from class: FilePath
      Check if it is a regular file.
      Specified by:
      isRegularFile in class FilePath
      Returns:
      true if it is a regular file
    • canWrite

      public boolean canWrite()
      Description copied from class: FilePath
      Check if the file is writable.
      Specified by:
      canWrite in class FilePath
      Returns:
      if the file is writable
    • setReadOnly

      public boolean setReadOnly()
      Description copied from class: FilePath
      Disable the ability to write.
      Specified by:
      setReadOnly in class FilePath
      Returns:
      true if the call was successful
    • size

      public long size()
      Description copied from class: FilePath
      Get the size of a file in bytes
      Specified by:
      size in class FilePath
      Returns:
      the size in bytes
    • newDirectoryStream

      public ArrayList<FilePath> newDirectoryStream()
      Description copied from class: FilePath
      List the files and directories in the given directory.
      Specified by:
      newDirectoryStream in class FilePath
      Returns:
      the list of fully qualified file names
    • toRealPath

      public FilePath toRealPath()
      Description copied from class: FilePath
      Normalize a file name.
      Specified by:
      toRealPath in class FilePath
      Returns:
      the normalized file name
    • newInputStream

      public InputStream newInputStream() throws IOException
      Description copied from class: FilePath
      Create an input stream to read from the file.
      Overrides:
      newInputStream in class FilePath
      Returns:
      the input stream
      Throws:
      IOException - If an I/O error occurs
    • open

      public FileChannel open(String mode) throws IOException
      Description copied from class: FilePath
      Open a random access file object.
      Specified by:
      open in class FilePath
      Parameters:
      mode - the access mode. Supported are r, rw, rws, rwd
      Returns:
      the file object
      Throws:
      IOException - If an I/O error occurs
    • newOutputStream

      public OutputStream newOutputStream(boolean append)
      Description copied from class: FilePath
      Create an output stream to write into the file.
      Overrides:
      newOutputStream in class FilePath
      Parameters:
      append - if true, the file will grow, if false, the file will be truncated first
      Returns:
      the output stream
    • moveTo

      public void moveTo(FilePath newName, boolean atomicReplace)
      Description copied from class: FilePath
      Rename a file if this is allowed.
      Specified by:
      moveTo in class FilePath
      Parameters:
      newName - the new fully qualified file name
      atomicReplace - whether the move should be atomic, and the target file should be replaced if it exists and replacing is possible
    • getScheme

      public String getScheme()
      Description copied from class: FilePath
      Get the scheme (prefix) for this file provider. This is similar to java.nio.file.spi.FileSystemProvider.getScheme.
      Specified by:
      getScheme in class FilePath
      Returns:
      the scheme