如何确定Android中外部存储的文件系统类型?

时间:2016-02-26 13:56:24

标签: android usb mount

我正在编写一个将文件写入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

有没有办法通过命令行或以编程方式确定文件系统?

1 个答案:

答案 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。