如何确定 Android 中外部存储的文件系统类型?
How can I determine the files system type of external storage in Android?
我正在编写一个将文件写入 USB 闪存驱动器(通过 USB OTG)的应用程序,然后将其从 phone 中删除并在其他地方使用(仅支持 FAT32)。我需要能够确定外部存储的格式是否正确,如果不正确,我需要告诉用户。
如果我连接 FAT32 格式的驱动器,在 android shell 上调用 mount 仅表示 "fuse" 作为文件系统:
/dev/fuse /storage/usbotg fuse rw,nosuid,nodev,relatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0
有没有办法通过命令行或编程方式确定文件系统?
你得到挂载命令列表:
ArrayList<String> listMount = new ArrayList<String>();
Process p=null;
try {
p = Runtime.getRuntime().exec("mount");
BufferedReader in2 = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while ((line = in2.readLine()) != null) {
listMount.add(line);
}
} catch (Exception e) {
// manage exception
}
在listMount 中有mount 的输出。搜索您的 /dev 并检查这是 vfat(文件系统 FAT 或 FAT32)。如果只看到 'fuse' 我相信 android 只能识别您的设备 USB OTG 而不是最终的 USB。
fuse 用于挂载其他文件系统类型,如 NTFS。
我正在编写一个将文件写入 USB 闪存驱动器(通过 USB OTG)的应用程序,然后将其从 phone 中删除并在其他地方使用(仅支持 FAT32)。我需要能够确定外部存储的格式是否正确,如果不正确,我需要告诉用户。
如果我连接 FAT32 格式的驱动器,在 android shell 上调用 mount 仅表示 "fuse" 作为文件系统:
/dev/fuse /storage/usbotg fuse rw,nosuid,nodev,relatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0
有没有办法通过命令行或编程方式确定文件系统?
你得到挂载命令列表:
ArrayList<String> listMount = new ArrayList<String>();
Process p=null;
try {
p = Runtime.getRuntime().exec("mount");
BufferedReader in2 = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while ((line = in2.readLine()) != null) {
listMount.add(line);
}
} catch (Exception e) {
// manage exception
}
在listMount 中有mount 的输出。搜索您的 /dev 并检查这是 vfat(文件系统 FAT 或 FAT32)。如果只看到 'fuse' 我相信 android 只能识别您的设备 USB OTG 而不是最终的 USB。
fuse 用于挂载其他文件系统类型,如 NTFS。