3
기본 파일 브라우저를 만들고 있는데, 한 모드에서 파일 루트를 반복하고 나열합니다. 아이콘, 드라이브 문자, 마지막으로 수정 한 날짜, 드라이브 이름 및 크기 (바이트)를 얻습니다. 이 모든 것은 작동하지만 드라이브 이름입니다. 아무도 이것을 얻는 방법을 알고 있습니까? 다음은 내 코드의 기본 버전입니다.Java에서 드라이브 이름 얻기
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;
}
});
}
huh ... 내가 필요로하는 모든 것이 'javax.swing.filechooser' 패키지를 사용해야하는 것처럼 보입니다. 아이러니 컬하지 않습니까? – Supuhstar
예, 질문을 게시하기 전에 먼저 보셔야합니다. 이것은이 주제에 대한 여섯 번째 질문이며 같은 장소로 계속 언급됩니다. 몇 가지 기본적인 문제 해결을 수행하고 API를 처음 읽는 법을 배우십시오! – camickr