Вопрос:
Есть ли способ получить информацию о дисках и томах с помощью только библиотек Java? Мне также нужна информация о удаленных файлах. Диск отформатирован как FAT-16 и имеет стандартный MBR.
Мне нужна следующая информация:
a) Информация о разделе. Отображение количества разделов на диске и для каждого раздела отображает начальный сектор, размер раздела и тип файловой системы.
b) Информация о томе. Только для первого раздела отображает количество секторов на кластер, размер области FAT, размер корневой директории и адрес сектора кластера №2.
c) Удаленная информация о файле. Для первого удаленного файла в корневом каталоге томов отобразите имя и размер этого файла и номер первого кластера. Отобразите первые 16 символов содержимого этого файла (предположим, что это простой текстовый файл).
Ответ №1
Если вам нужно получить информацию о файловой системе в Java, попробуйте:
import javax.swing.*; import java.awt.*; import java.awt.Color; import java.awt.event.*; import java.io.File; import javax.swing.filechooser.FileSystemView; public class Main { public static void main(String[] args) { System.out.println(«File system roots returned byFileSystemView.getFileSystemView():»); FileSystemView fsv = FileSystemView.getFileSystemView(); File[] roots = fsv.getRoots(); for (int i = 0; i < roots.length; i++) { System.out.println(«Root: » + roots[i]); } System.out.println(«Home directory: » + fsv.getHomeDirectory()); System.out.println(«File system roots returned by File.listRoots():»); File[] f = File.listRoots(); for (int i = 0; i < f.length; i++) { System.out.println(«Drive: » + f[i]); System.out.println(«Display name: » + fsv.getSystemDisplayName(f[i])); System.out.println(«Is drive: » + fsv.isDrive(f[i])); System.out.println(«Is floppy: » + fsv.isFloppyDrive(f[i])); System.out.println(«Readable: » + f[i].canRead()); System.out.println(«Writable: » + f[i].canWrite()); System.out.println(«Total space: » + f[i].getTotalSpace()); System.out.println(«Usable space: » + f[i].getUsableSpace()); } } }
Цитируется из этого ответа:
Используя JNA, вы можете вызвать Win32 Kernel32 GetVolumeInformation() для извлечения параметра lpFileSystemNameBuffer, который получает имя файловой системы, например файловую систему FAT или файловую систему NTFS