Module java.desktop

Class FileSystemView

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

public abstract class FileSystemView extends Object
FileSystemView是JFileChooser与文件系统交互的入口。由于JDK1.1文件API不允许访问诸如根分区、文件类型信息或隐藏文件位等信息,因此该类旨在尽可能地推断操作系统特定的文件系统信息。

Java许可证持有人可能希望提供FileSystemView的不同实现,以更好地处理特定操作系统。

  • Constructor Details

    • FileSystemView

      public FileSystemView()
      构造一个FileSystemView。
  • Method Details

    • getFileSystemView

      public static FileSystemView getFileSystemView()
      返回文件系统视图。
      返回:
      文件系统视图
    • isRoot

      public boolean isRoot(File f)
      确定给定文件是否是可导航树中的根。示例:Windows 98有一个根,即桌面文件夹。DOS每个驱动器号有一个根,例如C:\,D:\等。Unix有一个根,即“/”目录。默认实现从ShellFolder类获取信息。
      参数:
      f - 表示目录的File对象
      返回:
      如果f是可导航树中的根,则返回true。
      参见:
    • isTraversable

      public Boolean isTraversable(File f)
      如果文件(目录)可以访问,则返回true。如果目录无法遍历,则返回false。
      参数:
      f - File对象
      返回:
      如果文件/目录可以遍历,则返回true,否则返回false
      自1.4起:
      1.4
      参见:
    • getSystemDisplayName

      public String getSystemDisplayName(File f)
      文件、目录或文件夹的名称,如在系统文件浏览器中显示的那样。来自Windows的示例:"M:\"目录显示为"CD-ROM (M:)"。默认实现从ShellFolder类获取信息。
      参数:
      f - File对象
      返回:
      文件名,如本地文件选择器中显示的那样
      自1.4起:
      1.4
      参见:
    • getSystemTypeDescription

      public String getSystemTypeDescription(File f)
      文件、目录或文件夹的类型描述,如在系统文件浏览器中显示的那样。来自Windows的示例:"桌面"文件夹描述为"桌面"。覆盖具有本机ShellFolder实现的平台。
      参数:
      f - File对象
      返回:
      文件类型描述,如本机文件选择器中显示的那样,如果没有本机信息可用,则返回null。
      自1.4起:
      1.4
      参见:
    • getSystemIcon

      public Icon getSystemIcon(File f)
      文件、目录或文件夹的图标,如在系统文件浏览器中显示的那样。来自Windows的示例:"M:\"目录显示为CD-ROM图标。

      默认实现从ShellFolder类获取信息。

      参数:
      f - File对象
      返回:
      作为本机文件选择器中显示的图标
      自1.4起:
      1.4
      参见:
    • getSystemIcon

      public Icon getSystemIcon(File f, int width, int height)
      返回文件、目录或文件夹的图标,如在系统文件浏览器中显示的那样,以请求的大小显示。

      示例:

           FileSystemView fsv = FileSystemView.getFileSystemView();
           Icon icon = fsv.getSystemIcon(new File("application.exe"), 64, 64);
           JLabel label = new JLabel(icon);
       
      实现要求:
      可用的图标可能是特定于平台的,因此可用大小由平台确定。因此,可能无法完全匹配请求大小。返回的图标可能是多分辨率图标图像,可更好地支持具有不同缩放因子的高DPI环境。
      参数:
      f - 将检索图标的File对象
      width - 用户坐标系统中图标的宽度
      height - 用户坐标系统中图标的高度
      返回:
      作为本机文件选择器中显示的图标,对于不存在或无法访问的文件返回null。
      抛出:
      IllegalArgumentException - 如果传递了无效参数,如负大小或空文件引用
      自17起:
      17
      参见:
    • isParent

      public boolean isParent(File folder, File file)
      在Windows上,文件可以出现在多个文件夹中,而不仅仅是其父目录在文件系统中。例如,文件夹可以是“桌面”文件夹,它与file.getParentFile()不同。
      参数:
      folder - 表示目录或特殊文件夹的File对象
      file - File对象
      返回:
      如果folder是目录或特殊文件夹并包含file,则返回true。
      自1.4起:
      1.4
    • getChild

      public File getChild(File parent, String fileName)
      返回一个File对象,通常使用new File(parent, fileName)构造,除非父文件夹和子文件夹都是特殊文件夹,此时File是一个包含ShellFolder对象的包装器。
      参数:
      parent - 表示目录或特殊文件夹的File对象
      fileName - 存在于parent中的文件或文件夹的名称
      返回:
      一个File对象。
      自1.4起:
      1.4
    • isFileSystem

      public boolean isFileSystem(File f)
      检查f是否表示真实目录或文件,而不是诸如“桌面”之类的特殊文件夹。UI类使用它来确定在进行目录选择时是否可选择文件夹。
      参数:
      f - File对象
      返回:
      如果f是真实文件或目录,则返回true。
      自1.4起:
      1.4
    • createNewFolder

      public abstract File createNewFolder(File containingDir) throws IOException
      创建一个具有默认文件夹名称的新文件夹。
      参数:
      containingDir - 一个表示包含新文件夹的目录的File对象
      返回:
      一个表示新创建文件夹的File对象
      抛出:
      IOException - 如果无法创建新文件夹
    • isHiddenFile

      public boolean isHiddenFile(File f)
      返回文件是否隐藏。
      参数:
      f - 一个File对象
      返回:
      如果给定的File表示一个隐藏文件,则返回true
    • isFileSystemRoot

      public boolean isFileSystemRoot(File dir)
      dir是否是文件系统中树的根,例如驱动器或分区。例如:在Windows 98上,对"C:\"返回true。
      参数:
      dir - 表示目录的File对象
      返回:
      如果f是文件系统的根,则返回true
      自版本:
      1.4
      参见:
    • isDrive

      public boolean isDrive(File dir)
      UI类使用此方法来决定是否为驱动器或分区显示特殊图标,例如"硬盘"图标。默认实现无法知道,因此始终返回false。
      参数:
      dir - 一个目录
      返回:
      始终返回false
      自版本:
      1.4
    • isFloppyDrive

      public boolean isFloppyDrive(File dir)
      UI类使用此方法来决定是否为软盘显示特殊图标。意味着isDrive(dir)。默认实现无法知道,因此始终返回false。
      参数:
      dir - 一个目录
      返回:
      始终返回false
      自版本:
      1.4
    • isComputerNode

      public boolean isComputerNode(File dir)
      UI类使用此方法来决定是否为计算机节点显示特殊图标,例如"我的电脑"或网络服务器。默认实现无法知道,因此始终返回false。
      参数:
      dir - 一个目录
      返回:
      始终返回false
      自版本:
      1.4
    • getRoots

      public File[] getRoots()
      返回此系统上所有根分区。例如,在Windows上,这将是"桌面"文件夹,而在DOS上将是A:到Z:驱动器。
      返回:
      一个表示此系统上所有根分区的File对象数组
    • getHomeDirectory

      public File getHomeDirectory()
      返回主目录。
      返回:
      主目录
    • getDefaultDirectory

      public File getDefaultDirectory()
      返回文件选择器的用户默认起始目录。
      返回:
      一个表示默认起始文件夹的File对象
      自版本:
      1.4
    • createFileObject

      public File createFileObject(File dir, String filename)
      根据给定的文件名在dir中构造一个文件对象。
      参数:
      dir - 表示目录的抽象路径名
      filename - 路径名的String表示
      返回:
      dirfilename创建的File对象
    • createFileObject

      public File createFileObject(String path)
      根据给定的路径字符串构造一个文件对象。
      参数:
      path - 路径的String表示
      返回:
      从给定path创建的File对象
    • getFiles

      public File[] getFiles(File dir, boolean useFileHiding)
      获取显示的文件列表(即非隐藏文件)。
      参数:
      dir - 要返回的文件的根目录
      useFileHiding - 确定是否返回隐藏文件
      返回:
      包括给定dir中的文件和目录的File对象数组。如果useFileHiding为false,则包括隐藏文件。
    • getParentDirectory

      public File getParentDirectory(File dir)
      返回dir的父目录。
      参数:
      dir - 被查询的File
      返回:
      dir的父目录,如果dirnull则返回null
    • getChooserComboBoxFiles

      public File[] getChooserComboBoxFiles()
      返回表示文件选择器中将显示的值的文件数组。
      返回:
      一个File对象数组。如果没有适当的权限,则返回的数组可能为空。
      自版本:
      9
    • getChooserShortcutPanelFiles

      public final File[] getChooserShortcutPanelFiles()
      返回表示文件选择器快捷方式面板中默认显示的值的文件数组。
      返回:
      一个File对象数组。如果没有适当的权限,则返回的数组可能为空。
      自版本:
      12
    • isLink

      public boolean isLink(File file)
      返回指定文件是否表示可以通过getLinkLocation(File)获得的shell解释链接。
      参数:
      file - 一个文件
      返回:
      是否为链接
      抛出:
      NullPointerException - 如果file等于null
      SecurityException - 如果调用者没有必要的权限
      自版本:
      9
      参见:
    • getLinkLocation

      public File getLinkLocation(File file) throws FileNotFoundException
      如果指定文件是shell解释链接,则返回指定链接文件引用的常规文件。如果指定文件不是shell解释链接,则返回null
      参数:
      file - 一个文件
      返回:
      链接的文件或null
      抛出:
      FileNotFoundException - 如果链接的文件不存在
      NullPointerException - 如果file等于null
      SecurityException - 如果调用者没有必要的权限
      自版本:
      9
    • createFileSystemRoot

      protected File createFileSystemRoot(File f)
      为文件系统根目录的文件系统根目录行为创建一个新的File对象。
      参数:
      f - 表示文件系统根目录的File对象,例如Unix上的"/"或Windows上的"C:\"
      返回:
      一个新的File对象
      自版本:
      1.4