Interface FileObject

All Superinterfaces:
AutoCloseable, Closeable, Comparable<FileObject>, Iterable<FileObject>
All Known Implementing Classes:
AbstractFileObject, Bzip2FileObject, CompressedFileFileObject, DecoratedFileObject, DelegateFileObject, FtpFileObject, GzipFileObject, Http4FileObject, Http5FileObject, HttpFileObject, JarFileObject, LocalFile, OnCallRefreshFileObject, RamFileObject, SftpFileObject, SynchronizedFileObject, TarFileObject, UrlFileObject, ZipFileObject

Represents a file, and is used to access the content and structure of the file.

Files are arranged in a hierarchy. Each hierarchy forms a file system. A file system represents things like a local OS file system, a windows share, an HTTP server, or the contents of a Zip file.

There are two types of files: Folders, which contain other files, and normal files, which contain data, or content. A folder may not have any content, and a normal file cannot contain other files.

File Naming Link icon

TODO - write this.

Reading and Writing a File Link icon

Reading and writing a file, and all other operations on the file's content, is done using the FileContent object returned by getContent().

Creating and Deleting a File Link icon

A file is created using either createFolder(), createFile(), or by writing to the file using one of the FileContent methods.

A file is deleted using delete(). Recursive deletion can be done using delete(FileSelector).

Finding Files Link icon

Other files in the same file system as this file can be found using:

To find files in another file system, use a FileSystemManager.

Iterating Files Link icon

You can iterate over a FileObject using the Java "foreach" statement, which provides all descendants of a File Object.

Sorting Files Link icon

Files may be sorted using Arrays.sort() and List.sort().

See Also:
  • Field Details Link icon

  • Method Details Link icon

    • close Link icon

      static void close(FileObject fileObject) throws FileSystemException
      Closes the given file object.
      Parameters:
      fileObject - a file object, may be null.
      Throws:
      FileSystemException - See close().
      Since:
      2.11.0
    • canRenameTo Link icon

      boolean canRenameTo(FileObject newfile)
      Queries the file if it is possible to rename it to newfile.
      Parameters:
      newfile - the new file(-name)
      Returns:
      true it this is the case
    • close Link icon

      void close() throws FileSystemException
      Closes this file, and its content. This method is a hint to the implementation that it can release any resources associated with the file.

      The file object can continue to be used after this method is called.

      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Throws:
      FileSystemException - On error closing the file.
      See Also:
    • copyFrom Link icon

      void copyFrom(FileObject srcFile, FileSelector selector) throws FileSystemException
      Copies another file, and all its descendants, to this file.

      If this file does not exist, it is created. Its parent folder is also created, if necessary. If this file does exist, it is deleted first.

      This method is not transactional. If it fails and throws an exception, this file will potentially only be partially copied.

      Parameters:
      srcFile - The source file to copy.
      selector - The selector to use to select which files to copy.
      Throws:
      FileSystemException - If this file is read-only, or if the source file does not exist, or on error copying the file.
    • createFile Link icon

      Creates this file, if it does not exist. Also creates any ancestor folders which do not exist. This method does nothing if the file already exists and is a file.
      Throws:
      FileSystemException - If the file already exists with the wrong type, or the parent folder is read-only, or on error creating this file or one of its ancestors.
    • createFolder Link icon

      Creates this folder, if it does not exist. Also creates any ancestor folders which do not exist. This method does nothing if the folder already exists.
      Throws:
      FileSystemException - If the folder already exists with the wrong type, or the parent folder is read-only, or on error creating this folder or one of its ancestors.
    • delete Link icon

      boolean delete() throws FileSystemException
      Deletes this file. Does nothing if this file does not exist of if it is a folder that has children. Does not delete any descendants of this file, use delete(FileSelector) or deleteAll() for that.
      Returns:
      true if this object has been deleted
      Throws:
      FileSystemException - If this file is a non-empty folder, or if this file is read-only, or on error deleteing this file.
    • delete Link icon

      int delete(FileSelector selector) throws FileSystemException
      Deletes all descendants of this file that match a selector. Does nothing if this file does not exist.

      This method is not transactional. If it fails and throws an exception, this file will potentially only be partially deleted.

      Parameters:
      selector - The selector to use to select which files to delete.
      Returns:
      the number of deleted objects
      Throws:
      FileSystemException - If this file or one of its descendants is read-only, or on error deleting this file or one of its descendants.
    • deleteAll Link icon

      Deletes this file and all children.
      Returns:
      the number of deleted files.
      Throws:
      FileSystemException - if an error occurs.
      See Also:
    • exists Link icon

      boolean exists() throws FileSystemException
      Determines if this file exists.
      Returns:
      true if this file exists, false if not.
      Throws:
      FileSystemException - On error determining if this file exists.
    • findFiles Link icon

      Finds the set of matching descendants of this file, in depthwise order.
      Parameters:
      selector - The selector to use to select matching files.
      Returns:
      The matching files. The files are returned in depthwise order (that is, a child appears in the list before its parent).
      Throws:
      FileSystemException - if an error occurs.
    • findFiles Link icon

      void findFiles(FileSelector selector, boolean depthwise, List<FileObject> selected) throws FileSystemException
      Finds the set of matching descendants of this file.
      Parameters:
      selector - the selector used to determine if the file should be selected
      depthwise - controls the ordering in the list. e.g. deepest first
      selected - container for selected files. list needs not to be empty.
      Throws:
      FileSystemException - if an error occurs.
    • getChild Link icon

      Gets a child of this file. Note that this method returns null when the child does not exist. This differs from resolveFile(String, NameScope) which never returns null.
      Parameters:
      name - The name of the child.
      Returns:
      The child, or null if there is no such child.
      Throws:
      FileSystemException - If this file does not exist, or is not a folder, or on error determining this file's children.
    • getChildren Link icon

      Gets a lists of children of this file.
      Returns:
      An array containing the children of this file. The array is unordered. If the file does not have any children, a zero-length array is returned. This method never returns null.
      Throws:
      FileSystemException - If this file does not exist, or is not a folder, or on error listing this file's children.
    • getContent Link icon

      Gets this file's content. The FileContent returned by this method can be used to read and write the content of the file.

      This method can be called if the file does not exist, and the returned FileContent can be used to create the file by writing its content.

      Returns:
      This file's content.
      Throws:
      FileSystemException - On error getting this file's content.
    • getFileOperations Link icon

      Gets this instance's FileOperations.
      Returns:
      FileOperations interface that provides access to the operations API.
      Throws:
      FileSystemException - if an error occurs.
    • getFileSystem Link icon

      Gets the file system that contains this file.
      Returns:
      The file system.
    • getName Link icon

      Gets the name of this file.
      Returns:
      the FileName, not null.
    • getParent Link icon

      Gets the folder that contains this file.
      Returns:
      The folder that contains this file. Returns null if this file is the root of a file system.
      Throws:
      FileSystemException - On error finding the file's parent.
    • getPath Link icon

      default Path getPath()
      Gets a Path representing this file.
      Returns:
      the Path for the file.
      Since:
      2.7.0
    • getPublicURIString Link icon

      Gets the receiver as a URI String for public display, like, without a password.
      Returns:
      A URI String without a password, never null.
    • getType Link icon

      Gets this file's type.
      Returns:
      One of the FileType constants. Never returns null.
      Throws:
      FileSystemException - On error determining the file's type.
    • getURI Link icon

      default URI getURI()
      Gets a URI representing this file.
      Returns:
      the URI for the file, not null.
      Since:
      2.7.0
    • getURL Link icon

      Gets a URL representing this file.
      Returns:
      the URL for the file.
      Throws:
      FileSystemException - if an error occurs.
    • isAttached Link icon

      boolean isAttached()
      Tests whether the fileObject is attached.
      Returns:
      true if the FileObject is attached.
    • isContentOpen Link icon

      boolean isContentOpen()
      Tests whether someone reads/write to this file.
      Returns:
      true if the file content is open.
    • isExecutable Link icon

      Tests whether this file is executable.
      Returns:
      true if this file is executable, false if not.
      Throws:
      FileSystemException - On error determining if this file exists.
    • isFile Link icon

      boolean isFile() throws FileSystemException
      Tests whether this file is a regular file.
      Returns:
      true if this file is a regular file.
      Throws:
      FileSystemException - if an error occurs.
      Since:
      2.1
      See Also:
    • isFolder Link icon

      boolean isFolder() throws FileSystemException
      Tests whether this file is a folder.
      Returns:
      true if this file is a folder.
      Throws:
      FileSystemException - if an error occurs.
      Since:
      2.1
      See Also:
    • isHidden Link icon

      boolean isHidden() throws FileSystemException
      Tests whether this file is hidden.
      Returns:
      true if this file is hidden, false if not.
      Throws:
      FileSystemException - On error determining if this file exists.
    • isReadable Link icon

      Tests whether this file can be read.
      Returns:
      true if this file is readable, false if not.
      Throws:
      FileSystemException - On error determining if this file exists.
    • isSymbolicLink Link icon

      default boolean isSymbolicLink() throws FileSystemException
      Tests whether this file is a symbolic link.
      Returns:
      true if this file is a symbolic link, false if not.
      Throws:
      FileSystemException - On error determining if this file exists.
      Since:
      2.4
    • isWriteable Link icon

      Tests whether this file can be written to.
      Returns:
      true if this file is writable, false if not.
      Throws:
      FileSystemException - On error determining if this file exists.
    • moveTo Link icon

      void moveTo(FileObject destFile) throws FileSystemException
      Move this file.

      If the destFile exists, it is deleted first.

      Parameters:
      destFile - the New file name.
      Throws:
      FileSystemException - If this file is read-only, or if the source file does not exist, or on error copying the file.
    • refresh Link icon

      This will prepare the fileObject to get resynchronized with the underlying file system if required.
      Throws:
      FileSystemException - if an error occurs.
    • resolveFile Link icon

      Finds a file, relative to this file. Equivalent to calling resolveFile( path, NameScope.FILE_SYSTEM ).
      Parameters:
      path - The path of the file to locate. Can either be a relative path or an absolute path.
      Returns:
      The file.
      Throws:
      FileSystemException - On error parsing the path, or on error finding the file.
    • resolveFile Link icon

      Finds a file relative to this file. Refer to NameScope for a description of how names are resolved in the different scopes.
      Parameters:
      name - The name to resolve.
      scope - the NameScope for the file.
      Returns:
      The file.
      Throws:
      FileSystemException - On error parsing the path, or on error finding the file.
    • setExecutable Link icon

      boolean setExecutable(boolean executable, boolean ownerOnly) throws FileSystemException
      Sets the owner's (or everybody's) write permission.
      Parameters:
      executable - True to allow read access, false to disallow.
      ownerOnly - If true, the permission applies only to the owner; otherwise, it applies to everybody.
      Returns:
      true if the operation succeeded.
      Throws:
      FileSystemException - On error determining if this file exists.
      Since:
      2.1
    • setReadable Link icon

      boolean setReadable(boolean readable, boolean ownerOnly) throws FileSystemException
      Sets the owner's (or everybody's) read permission.
      Parameters:
      readable - True to allow read access, false to disallow
      ownerOnly - If true, the permission applies only to the owner; otherwise, it applies to everybody.
      Returns:
      true if the operation succeeded
      Throws:
      FileSystemException - On error determining if this file exists.
      Since:
      2.1
    • setWritable Link icon

      boolean setWritable(boolean writable, boolean ownerOnly) throws FileSystemException
      Sets the owner's (or everybody's) write permission.
      Parameters:
      writable - True to allow read access, false to disallow
      ownerOnly - If true, the permission applies only to the owner; otherwise, it applies to everybody.
      Returns:
      true if the operation succeeded
      Throws:
      FileSystemException - On error determining if this file exists.
      Since:
      2.1