简体   繁体   English

在Java中获取驱动器名称

[英]Getting the drive name in Java

I'm making a basic file browser, and in one mode, it loops through the file roots and lists them. 我正在制作一个基本的文件浏览器,在一种模式下,它循环遍历文件根并列出它们。 I have it get the icon, drive letter, last-modified date, drive name, and size in bytes. 我得到了图标,驱动器号,最后修改日期,驱动器名称和大小(以字节为单位)。 These all work but drive name. 这些都可以,但驱动器名称。 Does anyone know how to get this? 有谁知道如何得到这个? Here is a basic version of my code: 这是我的代码的基本版本:

public static final byte ICON_INDEX = 0, NAME_INDEX = 1, MOD_INDEX = 2, TYPE_INDEX = 3, SIZE_INDEX = 4;
public String headers[] = new String[5];

private void updateFileView()
{
  java.io.File[] roots = java.io.File.listRoots();
  Object[][] files = new Object[roots.length][headers.length];
  for (int i = 0; i < files.length; i++)
  {
    files[i][ICON_INDEX] = javax.swing.filechooser.FileSystemView.getFileSystemView().getSystemIcon(roots[i]);
    files[i][NAME_INDEX] = roots[i];
    files[i][MOD_INDEX] = new java.util.Date(roots[i]).toString();
    files[i][TYPE_INDEX] = ???;
    files[i][SIZE_INDEX] = roots[i].length();
  }
  headers[ICON_INDEX] = "Icon";
  headers[NAME_INDEX] = "Drive Letter";
  headers[MOD_INDEX] = "Last Date Modified";
  headers[TYPE_INDEX] = "Drive Name";
  headers[SIZE_INDEX] = "Size in Bytes";
  displayTable.setModel(new javax.swing.table.DefaultTableModel(files, headers)
  {
    private static final long serialVersionUID = 1L;
    Class[] types = new Class[]
    {
      javax.swing.Icon.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.Long.class
    };

    @Override
    public Class getColumnClass(int columnIndex)
    {
      return types[columnIndex];
    }

    @Override
    public boolean isCellEditable(int rowIndex, int columnIndex)
    {
      return false;
    }
  });
}

你试过了吗?

FileSystemView.getFileSystemView().getSystemDisplayName(...)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM