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.

### Field Summary

### Fields inherited from class org.h2.store.fs.FilePath

`name`

### Constructor Summary

Constructors
Constructor and Description
`FilePathZip2()`

### Method Summary

Methods
`boolean` `canWrite()` Check if the file is writable.
`void` `createDirectory()` Create a directory (all required parent directories already exist).
`boolean` `createFile()` Create a new file.
`FilePath` `createTempFile(java.lang.String suffix, boolean deleteOnExit, boolean inTempDir)` Create a new temporary file.
`void` `delete()` Delete a file or directory if it exists.
`boolean` `exists()` Checks if a file exists.
`FilePath` `getParent()` Get the parent directory of a file or directory.
`FilePathZip2` `getPath(java.lang.String path)` Convert a file to a path.
`java.lang.String` `getScheme()` Get the scheme (prefix) for this file provider.
`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 file
`void` `moveTo(FilePath newName, boolean atomicReplace)` Rename a file if this is allowed.
`java.util.ArrayList<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.
`static FilePathZip2` `register()` Register the file system.
`boolean` `setReadOnly()` Disable the ability to write.
`long` `size()` Get the size of a file in bytes
`FilePath` `toRealPath()` Normalize a file name.
`FilePath` `unwrap()` Get the unwrapped file name (without wrapper prefixes if wrapping / delegating file systems are used).

### Methods inherited from class org.h2.store.fs.FilePath

`get, getName, getNextTempFileNamePart, register, toString, unregister`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Constructor Detail

#### FilePathZip2

    public FilePathZip2()

### Method Detail

#### register

    public static FilePathZip2 register()

Register the file system.

Returns:
  the instance

#### getPath

    public FilePathZip2 getPath(java.lang.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 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(java.lang.String suffix,
                          boolean deleteOnExit,
                          boolean inTempDir)
                            throws java.io.IOException

Description copied from class: `FilePath`
Create a new temporary file.

Overrides:
  `createTempFile` in class `FilePath`
Parameters:
  `suffix` - the suffix
  `deleteOnExit` - if the file should be deleted when the virtual machine exists
  `inTempDir` - if the file should be stored in the temporary directory
Returns:
  the name of the created file
Throws:
  `java.io.IOException`

#### 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

#### 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 java.util.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 java.io.InputStream newInputStream()
                                       throws java.io.IOException

Description copied from class: `FilePath`
Create an input stream to read from the file.

Specified by:
  `newInputStream` in class `FilePath`
Returns:
  the input stream
Throws:
  `java.io.IOException`

#### 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.

Specified by:
  `open` in class `FilePath`
Parameters:
  `mode` - the access mode. Supported are r, rw, rws, rwd
Returns:
  the file object
Throws:
  `java.io.IOException`

#### newOutputStream

    public java.io.OutputStream newOutputStream(boolean append)

Description copied from class: `FilePath`
Create an output stream to write into the file.

Specified by:
  `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 java.lang.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