org.h2.store.fs
Class FilePathDisk

java.lang.Object
  extended by org.h2.store.fs.FilePath
      extended by org.h2.store.fs.FilePathDisk

public class FilePathDisk
extends FilePath

This file system stores files on disk. This is the most common file system.


Field Summary
 
Fields inherited from class org.h2.store.fs.FilePath
name
 
Constructor Summary
FilePathDisk()
           
 
Method Summary
 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.
static java.lang.String expandUserHomeDirectory(java.lang.String fileName)
          Expand '~' to the user home directory.
 FilePath getParent()
          Get the parent directory of a file or directory.
 FilePathDisk 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)
          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 bytes
 FilePathDisk toRealPath()
          Normalize a file name.
protected static java.lang.String translateFileName(java.lang.String fileName)
          Translate the file name to the native format.
 
Methods inherited from class org.h2.store.fs.FilePath
get, getName, getNextTempFileNamePart, register, toString, unregister, unwrap
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

FilePathDisk

public FilePathDisk()
Method Detail

getPath

public FilePathDisk 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

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

translateFileName

protected static java.lang.String translateFileName(java.lang.String fileName)
Translate the file name to the native format. This will replace '\' with '/' and expand the home directory ('~').

Parameters:
fileName - the file name
Returns:
the native file name

expandUserHomeDirectory

public static java.lang.String expandUserHomeDirectory(java.lang.String fileName)
Expand '~' to the user home directory. It is only be expanded if the '~' stands alone, or is followed by '/' or '\'.

Parameters:
fileName - the file name
Returns:
the native file name

moveTo

public void moveTo(FilePath newName)
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

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

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

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

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 class FilePath
Returns:
the list of fully qualified file names

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

toRealPath

public FilePathDisk toRealPath()
Description copied from class: FilePath
Normalize a file name.

Specified by:
toRealPath in class FilePath
Returns:
the normalized file name

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

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

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

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

createDirectory

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

Specified by:
createDirectory in class FilePath

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

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

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

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