【问题标题】:How to detect the USB drive is NTFS or FAT32 in objective-c如何在objective-c中检测USB驱动器是NTFS还是FAT32
【发布时间】:2013-04-27 13:43:07
【问题描述】:

当用户插入新的USB驱动器时,有没有办法在objective-c中检测这个驱动器是NTFS还是FAT32。如果可能的话,你能给我看一个简单的演示吗?

谢谢!

【问题讨论】:

    标签: objective-c macos cocoa


    【解决方案1】:

    您可以使用NSWorkspace-getFileSystemInfoForPath:isRemovable:isWritable:isUnmountable:description:type: 选择器来获取文件系统(以及其他列出的属性)。

    查看 Apple 的 official documentation。除了fullPath之外的所有参数都是out参数(fullPath是文件系统的挂载点),所以变量的值会改变。 path: 参数将返回包含文件系统类型名称的字符串。

    【讨论】:

      【解决方案2】:

      您为什么真正关心它是 NTFS 还是 FAT32?我没有看到轻松做到这一点的方法。如果您关心卷是否可写,那看起来是可行的。

      首先,您可以使用 NSFileManager 方法获取已安装卷的列表:

      – mountedVolumeURLsIncludingResourceValuesForKeys:options:
      

      你会得到一个由 NSURL 对象组成的 NSArray。使用 NSURL,您可以使用如下方法:

      – resourceValuesForKeys:error:
      

      里面有各种卷信息键。例如,“NSURLVolumeIsReadOnlyKey”。

      【讨论】:

      • 可能是因为两者都有不同的限制/约束。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-22
      • 1970-01-01
      • 2018-08-05
      • 2015-11-21
      相关资源
      最近更新 更多