我正在编写一个将文件写入USB闪存驱动器(通过USB OTG)的应用程序,然后将其从手机中删除并在其他地方使用(仅支持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
有没有办法通过命令行或以编程方式确定文件系统?
答案 0 :(得分:1)
你得到mount命令列表:
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)。如果只看到&#39; fuse&#39;我相信android只识别你的设备USB OTG,而不是最终的USB。
fuse用于挂载其他文件系统类型,如NTFS。