【发布时间】:2011-03-29 00:10:20
【问题描述】:
各位,
我正在开发一个应该能够卸载卷的小应用程序。
目前,我正在使用以下代码来确定卷是否不可挂载:
BOOL isRemovable, isWritable, isUnmountable;
NSString *description, *type;
BOOL succ = [ws getFileSystemInfoForPath:[itemInfo objectForKey:@"path"]
isRemovable:&isRemovable
isWritable:&isWritable
isUnmountable:&isUnmountable
description:&description
type:&type];
问题是只有物理可移动卷(如 CD 或 DVD)才能获得 isUnmountable=YES 标志。 USB 设备不会,尽管这些设备也无法安装。
你们有解决办法吗?
---- 编辑
我用另一个 FAT 格式的 U 盘试了一下。我有 2 个 USB 硬盘连接到我的 mac,这些硬盘无法通过 Finder 或磁盘实用程序安装 - 这些是 HFS 格式的。我创建了一个使用上面代码的输出:
/,hfs,不可安装:否,可移动:否
/Volumes/Elephant,hfs,不可安装:否,可移动:否
/Volumes/Time Machine,hfs,不可安装:否,可移动:否
/Volumes/USBSTICK,msdos,不可挂载:是,可移动:是
看起来该方法仅在设备为 FAT 或 MSDOS 格式时才返回 YES。这很奇怪,因为其他 2 个(Elephant、Time Machine)是通过 USB 连接的卷,并且必须是可移动和不可安装的。是否有其他方法可以获取该信息或我在代码中做错了什么?
--
问候
马可
【问题讨论】:
标签: objective-c cocoa filesystems unmount