Class FileSystemView

java.lang.Object
javax.swing.filechooser.FileSystemView

public abstract class FileSystemView extends Object
FileSystemView is JFileChooser's gateway to the file system. Since the JDK1.1 File API doesn't allow access to such information as root partitions, file type information, or hidden file bits, this class is designed to intuit as much OS-specific file system information as possible.

Java Licensees may want to provide a different implementation of FileSystemView to better handle a given operating system.

  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructs a FileSystemView.
  • Method Summary

    Modifier and Type
    Method
    Description
    createFileObject(File dir, String filename)
    Returns a File object constructed in dir from the given filename.
    Returns a File object constructed from the given path string.
    protected File
    Creates a new File object for f with correct behavior for a file system root directory.
    abstract File
    createNewFolder(File containingDir)
    Creates a new folder with a default folder name.
    getChild(File parent, String fileName)
    Returns a File object which is normally constructed with new File(parent, fileName) except when the parent and child are both special folders, in which case the File is a wrapper containing a ShellFolder object.
    Returns an array of files representing the values which will be shown in the file chooser selector.
    final File[]
    Returns an array of files representing the values to show by default in the file chooser shortcuts panel.
    Return the user's default starting directory for the file chooser.
    getFiles(File dir, boolean useFileHiding)
    Gets the list of shown (i.e. not hidden) files.
    Returns the file system view.
    Returns the home directory.
    Returns the regular file referenced by the specified link file if the specified file is a shell interpreted link.
    Returns the parent directory of dir.
    Returns all root partitions on this system.
    Name of a file, directory, or folder as it would be displayed in a system file browser.
    Icon for a file, directory, or folder as it would be displayed in a system file browser.
    getSystemIcon(File f, int width, int height)
    Returns an icon for a file, directory, or folder as it would be displayed in a system file browser for the requested size.
    Type description for a file, directory, or folder as it would be displayed in a system file browser.
    boolean
    Used by UI classes to decide whether to display a special icon for a computer node, e.g.
    boolean
    Used by UI classes to decide whether to display a special icon for drives or partitions, e.g. a "hard disk" icon.
    boolean
    Checks if f represents a real directory or file as opposed to a special folder such as "Desktop".
    boolean
    Is dir the root of a tree in the file system, such as a drive or partition.
    boolean
    Used by UI classes to decide whether to display a special icon for a floppy disk.
    boolean
    Returns whether a file is hidden or not.
    boolean
    isLink(File file)
    Returns whether the specified file denotes a shell interpreted link which can be obtained by the getLinkLocation(File).
    boolean
    isParent(File folder, File file)
    On Windows, a file can appear in multiple folders, other than its parent directory in the filesystem.
    boolean
    Determines if the given file is a root in the navigable tree(s).
    Returns true if the file (directory) can be visited.

    Methods declared in class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • FileSystemView

      public FileSystemView()
      Constructs a FileSystemView.
  • Method Details

    • getFileSystemView

      public static FileSystemView getFileSystemView()
      Returns the file system view.
      Returns:
      the file system view
    • isRoot

      public boolean isRoot(File f)
      Determines if the given file is a root in the navigable tree(s). Examples: Windows 98 has one root, the Desktop folder. DOS has one root per drive letter, C:\, D:\, etc. Unix has one root, the "/" directory. The default implementation gets information from the ShellFolder class.
      Parameters:
      f - a File object representing a directory
      Returns:
      true if f is a root in the navigable tree.
      See Also:
    • isTraversable

      public Boolean isTraversable(File f)
      Returns true if the file (directory) can be visited. Returns false if the directory cannot be traversed.
      Parameters:
      f - the File
      Returns:
      true if the file/directory can be traversed, otherwise false
      Since:
      1.4
      See Also:
    • getSystemDisplayName

      public String getSystemDisplayName(File f)
      Name of a file, directory, or folder as it would be displayed in a system file browser. Example from Windows: the "M:\" directory displays as "CD-ROM (M:)" The default implementation gets information from the ShellFolder class.
      Parameters:
      f - a File object
      Returns:
      the file name as it would be displayed by a native file chooser
      Since:
      1.4
      See Also:
    • getSystemTypeDescription

      public String getSystemTypeDescription(File f)
      Type description for a file, directory, or folder as it would be displayed in a system file browser. Example from Windows: the "Desktop" folder is described as "Desktop". Override for platforms with native ShellFolder implementations.
      Parameters:
      f - a File object
      Returns:
      the file type description as it would be displayed by a native file chooser or null if no native information is available.
      Since:
      1.4
      See Also:
    • getSystemIcon

      public Icon getSystemIcon(File f)
      Icon for a file, directory, or folder as it would be displayed in a system file browser. Example from Windows: the "M:\" directory displays a CD-ROM icon.

      The default implementation gets information from the ShellFolder class.

      Parameters:
      f - a File object
      Returns:
      an icon as it would be displayed by a native file chooser
      Since:
      1.4
      See Also:
    • getSystemIcon

      public Icon getSystemIcon(File f, int width, int height)
      Returns an icon for a file, directory, or folder as it would be displayed in a system file browser for the requested size.

      Example:

           FileSystemView fsv = FileSystemView.getFileSystemView();
           Icon icon = fsv.getSystemIcon(new File("application.exe"), 64, 64);
           JLabel label = new JLabel(icon);
       
      Implementation Requirements:
      The available icons may be platform specific and so the available sizes determined by the platform. Therefore an exact match for the requested size may not be possible. The icon returned may be a multi-resolution icon image, which allows better support for High DPI environments with different scaling factors.
      Parameters:
      f - a File object for which the icon will be retrieved
      width - width of the icon in user coordinate system.
      height - height of the icon in user coordinate system.
      Returns:
      an icon as it would be displayed by a native file chooser or null for a non-existent or inaccessible file.
      Throws:
      IllegalArgumentException - if an invalid parameter such as a negative size or a null file reference is passed.
      Since:
      17
      See Also:
    • isParent

      public boolean isParent(File folder, File file)
      On Windows, a file can appear in multiple folders, other than its parent directory in the filesystem. Folder could for example be the "Desktop" folder which is not the same as file.getParentFile().
      Parameters:
      folder - a File object representing a directory or special folder
      file - a File object
      Returns:
      true if folder is a directory or special folder and contains file.
      Since:
      1.4
    • getChild

      public File getChild(File parent, String fileName)
      Returns a File object which is normally constructed with new File(parent, fileName) except when the parent and child are both special folders, in which case the File is a wrapper containing a ShellFolder object.
      Parameters:
      parent - a File object representing a directory or special folder
      fileName - a name of a file or folder which exists in parent
      Returns:
      a File object.
      Since:
      1.4
    • isFileSystem

      public boolean isFileSystem(File f)
      Checks if f represents a real directory or file as opposed to a special folder such as "Desktop". Used by UI classes to decide if a folder is selectable when doing directory choosing.
      Parameters:
      f - a File object
      Returns:
      true if f is a real file or directory.
      Since:
      1.4
    • createNewFolder

      public abstract File createNewFolder(File containingDir) throws IOException
      Creates a new folder with a default folder name.
      Parameters:
      containingDir - a File object denoting directory to contain the new folder
      Returns:
      a File object denoting the newly created folder
      Throws:
      IOException - if new folder could not be created
    • isHiddenFile

      public boolean isHiddenFile(File f)
      Returns whether a file is hidden or not.
      Parameters:
      f - a File object
      Returns:
      true if the given File denotes a hidden file
    • isFileSystemRoot

      public boolean isFileSystemRoot(File dir)
      Is dir the root of a tree in the file system, such as a drive or partition. Example: Returns true for "C:\" on Windows 98.
      Parameters:
      dir - a File object representing a directory
      Returns:
      true if f is a root of a filesystem
      Since:
      1.4
      See Also:
    • isDrive

      public boolean isDrive(File dir)
      Used by UI classes to decide whether to display a special icon for drives or partitions, e.g. a "hard disk" icon. The default implementation has no way of knowing, so always returns false.
      Parameters:
      dir - a directory
      Returns:
      false always
      Since:
      1.4
    • isFloppyDrive

      public boolean isFloppyDrive(File dir)
      Used by UI classes to decide whether to display a special icon for a floppy disk. Implies isDrive(dir). The default implementation has no way of knowing, so always returns false.
      Parameters:
      dir - a directory
      Returns:
      false always
      Since:
      1.4
    • isComputerNode

      public boolean isComputerNode(File dir)
      Used by UI classes to decide whether to display a special icon for a computer node, e.g. "My Computer" or a network server. The default implementation has no way of knowing, so always returns false.
      Parameters:
      dir - a directory
      Returns:
      false always
      Since:
      1.4
    • getRoots

      public File[] getRoots()
      Returns all root partitions on this system. For example, on Windows, this would be the "Desktop" folder, while on DOS this would be the A: through Z: drives.
      Returns:
      an array of File objects representing all root partitions on this system
    • getHomeDirectory

      public File getHomeDirectory()
      Returns the home directory.
      Returns:
      the home directory
    • getDefaultDirectory

      public File getDefaultDirectory()
      Return the user's default starting directory for the file chooser.
      Returns:
      a File object representing the default starting folder
      Since:
      1.4
    • createFileObject

      public File createFileObject(File dir, String filename)
      Returns a File object constructed in dir from the given filename.
      Parameters:
      dir - an abstract pathname denoting a directory
      filename - a String representation of a pathname
      Returns:
      a File object created from dir and filename
    • createFileObject

      public File createFileObject(String path)
      Returns a File object constructed from the given path string.
      Parameters:
      path - String representation of path
      Returns:
      a File object created from the given path
    • getFiles

      public File[] getFiles(File dir, boolean useFileHiding)
      Gets the list of shown (i.e. not hidden) files.
      Parameters:
      dir - the root directory of files to be returned
      useFileHiding - determine if hidden files are returned
      Returns:
      an array of File objects representing files and directories in the given dir. It includes hidden files if useFileHiding is false.
    • getParentDirectory

      public File getParentDirectory(File dir)
      Returns the parent directory of dir.
      Parameters:
      dir - the File being queried
      Returns:
      the parent directory of dir, or null if dir is null
    • getChooserComboBoxFiles

      public File[] getChooserComboBoxFiles()
      Returns an array of files representing the values which will be shown in the file chooser selector.
      Returns:
      an array of File objects. The array returned may be possibly empty if there are no appropriate permissions.
      Since:
      9
    • getChooserShortcutPanelFiles

      public final File[] getChooserShortcutPanelFiles()
      Returns an array of files representing the values to show by default in the file chooser shortcuts panel.
      Returns:
      an array of File objects. The array returned may be possibly empty if there are no appropriate permissions.
      Since:
      12
    • isLink

      public boolean isLink(File file)
      Returns whether the specified file denotes a shell interpreted link which can be obtained by the getLinkLocation(File).
      Parameters:
      file - a file
      Returns:
      whether this is a link
      Throws:
      NullPointerException - if file equals null
      Since:
      9
      See Also:
    • getLinkLocation

      public File getLinkLocation(File file) throws FileNotFoundException
      Returns the regular file referenced by the specified link file if the specified file is a shell interpreted link. Returns null if the specified file is not a shell interpreted link.
      Parameters:
      file - a file
      Returns:
      the linked file or null.
      Throws:
      FileNotFoundException - if the linked file does not exist
      NullPointerException - if file equals null
      Since:
      9
    • createFileSystemRoot

      protected File createFileSystemRoot(File f)
      Creates a new File object for f with correct behavior for a file system root directory.
      Parameters:
      f - a File object representing a file system root directory, for example "/" on Unix or "C:\" on Windows.
      Returns:
      a new File object
      Since:
      1.4