Mac开发之如何移除大容量存储设备
2017-08-28 13:21
579 查看
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了;
相关文章推荐
- Android开发学习---如何写数据到外部存储设备(sd卡),Environment.getExternalStorageDirectory,怎么获取sd卡的大小?
- USB 大容量存储设备的开发
- Q: 目前我有个设备已经内附现有的驱动程序,但我又再度利用WinDriver开发此设备的驱动程序并且生成INF档案,请问我该如何移除此INF档案让此设备正常运行?
- 如何查找Mac上的USB存储设备使用痕迹
- 关于 mac 电脑上如何用终端配置 android 开发环境adb 和 识别手机设备的方法
- 【Android游戏开发二十一】Android os设备谎言分辨率的解决方案!以及简单阐述游戏引擎如何使用!
- 如何用VC++开发读取网卡MAC地址的程序
- mac下 android开发 设备调试
- ios开发中测试设备不在身边,如何进行测试
- 如何禁用 USB 存储设备
- Apple Developer Program注册设备满了100台,如何移除?
- 如何在Mac OS X下配置Android开发环境[入门]
- Android音频开发(4):如何存储和解析wav文件
- libvirt 如何使用 LVM 存储设备
- Mac应用开发--如何隐藏Mac应用上的工具栏
- 多设备适应的前端开发时代如何字体单位选择
- [Unity3D]手机3D游戏开发:如何实现最高分的存储与显示(一)----初始化显示的高分榜
- (转)【Android游戏开发二十一】Android os设备谎言分辨率的解决方案!以及简单阐述游戏引擎如何使用!
- 【Android 开发教程】保存到内部存储设备
- 如何在 Windows CE 5.0 中开发和测试设备驱动程序