首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cocoa:检测无法装载的卷

Cocoa:检测无法装载的卷
EN

Stack Overflow用户
提问于 2010-08-12 23:15:02
回答 1查看 1.2K关注 0票数 1

我朋友们,

我正在开发一个小应用程序,应该能够卸载卷。

目前,我正在使用以下代码来确定卷是否不可挂载:

代码语言:javascript
复制
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或Disk Utility挂载-它们是HFS格式的。我创建了一个使用上述代码的输出:

/,hfs,不可挂载:否,可删除:否

/Volumes/Elephant,hfs,unmountable: NO,removable: NO

/Volumes/Time Machine,hfs,unmountable: NO,removable: NO

/Volumes/USBSTICK,msdos,unmountable:是,removable:是

如果设备是FAT或MSDOS格式的,则该方法似乎只返回YES。这很奇怪,因为另外两个(Elephant,Time Machine)是通过USB连接的卷,必须是可移除和不可挂载的。有没有其他方法来获取这些信息,或者我在代码中做错了什么?

--

问候

马可

EN

回答 1

Stack Overflow用户

发布于 2010-08-13 02:55:27

使用你的代码,用我自己的U盘(一个1 1GB的Cruzer -是的,我知道我落后了),我得到了isRemovable的肯定。

尽管BOOL通常表示为YES或NO,但TRUE仍然有效。为了确保这一点,我也进行了测试。我每次都让isRemovable ==为TRUE/YES。

因此,由于条件"can be unmount /removed“可能取决于某些内容是否正在实际使用卷上的资源,这很可能是阻止此方法回答”继续并卸载它“的原因。在你的问题中,更多的上下文可能有助于识别这一点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3469218

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档