Mac开发之如何移除大容量存储设备

来源:互联网 发布:法国洋娃娃淘宝 编辑:程序博客网 时间:2024/04/30 06:40

Mac开发之如何移除大容量存储设备

Mac开发在国内一直不温不火,资料更是少得可怜,所以很多知识都是靠自己慢慢摸索,国外的技术论坛关于Mac开发的资料会多一点。言归正传,现在我主要是想分享一下在Mac程序中如何移除大容量存储设备,类似于360U盘管家的功能。我用的方法是用命令行,然后objective-c调用命令行。

大容量存储设备(mass storage device)这里主要用U盘和USB设备来演示。我们都知道当USB设备插入Macbook的时候,会在Finder->Devices中或者桌面产生一个盘符,如图所示:
  

首先需要用到的命令是df。df命令的功能是用来检查unix服务器的文件系统的磁盘空间占用情况,打开终端,输入df,结果如图:



红色方框是U盘和USB设备,那么我们怎么才能把它们移除掉呢?命令行中有个unmount命令是移除设备的,我们来试试,终端输入:diskutil unmount /dev/disk3,结果如图:



用df命令查看新的设备信息,发现/dev/disk3确实移除掉了,回到桌面,U盘的盘符也消失了。但是这种做法是手动移除的,我们改进一下,让它筛选出相应的设备然后移除。首先我们要把红色方框里面的信息筛选出来,终端输入:df | grep Volumes | awk '{ print $1 }' ,筛选出所有的Volumes设备,结果如图:


将筛选出来的设备移除掉,语法:df | grep 设备挂载点或者设备名  | awk '{ print $1 }' | while read disk; do diskutil unmount $disk; done
终端输入:df | grep Volumes | awk '{ print $1 }' | while read disk; do diskutil unmount $disk; done,移除所有的Volumes设备。
终端输入:df | grep "/Volumes/CRP DISABLD"  | awk '{ print $1 }' | while read disk; do diskutil unmount $disk; done ,移除“/Volumes/CRP\ DISABLD”名称的USB设备。
终端输入:df | grep "EOS_DIGITAL"  | awk '{ print $1 }' | while read disk; do diskutil unmount $disk; done ,移除“EOS_DIGITAL”名称的USB设备。

在objective-c中调用命令行非常简单,system函数就是调用命令行用的,system("df | grep "/Volumes/CRP DISABLD" | awk '{ print $1 }' | while read disk; do diskutil unmount $disk; done")就OK了;


阅读全文
0 0