JavaTM 2 Platform
Std. Ed. v1.4.0

javax.swing.filechooser
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
FileSystemView()
           
 
Method Summary
 File createFileObject(File dir, String filename)
          Returns a File object constructed in dir from the given filename.
 File createFileObject(String path)
          Returns a File object constructed from the given path string.
protected  File createFileSystemRoot(File f)
          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.
 File getChild(File parent, String fileName)
           
 File getDefaultDirectory()
          Return the user's default starting directory for the file chooser.
 File[] getFiles(File dir, boolean useFileHiding)
          Gets the list of shown (i.e.
static FileSystemView getFileSystemView()
           
 File getHomeDirectory()
           
 File getParentDirectory(File dir)
          Returns the parent directory of dir.
 File[] getRoots()
          Returns all root partitions on this system.
 String getSystemDisplayName(File f)
          Name of a file, directory, or folder as it would be displayed in a system file browser.
 Icon getSystemIcon(File f)
          Icon for a file, directory, or folder as it would be displayed in a system file browser.
 String getSystemTypeDescription(File f)
          Type description for a file, directory, or folder as it would be displayed in a system file browser.
 boolean isComputerNode(File dir)
           
 boolean isDrive(File dir)
           
 boolean isFileSystem(File f)
           
 boolean isFileSystemRoot(File dir)
           
 boolean isFloppyDrive(File dir)
           
 boolean isHiddenFile(File f)
          Returns whether a file is hidden or not.
 boolean isParent(File folder, File file)
          On Windows, a file can appear in multiple folders, other than its parent directory in the filesystem.
 boolean isRoot(File f)
          Determines if the given file is a root in the navigatable tree(s).
 Boolean isTraversable(File f)
          Returns true if the file (directory) can be visited.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FileSystemView

public FileSystemView()
Method Detail

getFileSystemView

public static FileSystemView getFileSystemView()

isRoot

public boolean isRoot(File f)
Determines if the given file is a root in the navigatable 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 navigatable tree.
See Also:
isFileSystemRoot(java.io.File)

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
See Also:
JFileChooser.isTraversable(java.io.File), FileView.isTraversable(java.io.File)

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
See Also:
JFileChooser.getName(java.io.File)

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 desribed 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.
See Also:
JFileChooser.getTypeDescription(java.io.File)

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
See Also:
JFileChooser.getIcon(java.io.File)

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 repesenting a directory or special folder
file - a File object
Returns:
true if folder is a directory or special folder and contains file.

getChild

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

isFileSystem

public boolean isFileSystem(File f)

createNewFolder

public abstract File createNewFolder(File containingDir)
                              throws IOException
Creates a new folder with a default folder name.

IOException

isHiddenFile

public boolean isHiddenFile(File f)
Returns whether a file is hidden or not.


isFileSystemRoot

public boolean isFileSystemRoot(File dir)

isDrive

public boolean isDrive(File dir)

isFloppyDrive

public boolean isFloppyDrive(File dir)

isComputerNode

public boolean isComputerNode(File dir)

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.


getHomeDirectory

public File getHomeDirectory()

getDefaultDirectory

public File getDefaultDirectory()
Return the user's default starting directory for the file chooser.


createFileObject

public File createFileObject(File dir,
                             String filename)
Returns a File object constructed in dir from the given filename.


createFileObject

public File createFileObject(String path)
Returns a File object constructed from the given path string.


getFiles

public File[] getFiles(File dir,
                       boolean useFileHiding)
Gets the list of shown (i.e. not hidden) files.


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

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

JavaTM 2 Platform
Std. Ed. v1.4.0

Submit a bug or feature
For further API reference and developer documentation, see Java 2 SDK SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.

Java, Java 2D, and JDBC are trademarks or registered trademarks of Sun Microsystems, Inc. in the US and other countries.
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.