题
我如何通过编程确定哪个(如果有)挂载量是DVD?
我目前正在寻找具有权限555的目录,但我希望少一些骇客。谢谢!!
$ ls -l /Volumes/
total 12
dr-xr-xr-x 4 mh gfx 136 Aug 3 2001 DQRMX2102
lrwxr-xr-x 1 root admin 1 Apr 6 15:09 Macintosh HD -> /
drwxrwxr-x 9 mh gfx 374 Feb 3 12:55 data
解决方案
您正在使用哪种编程语言/工具包?
如果您在Objective-C中使用可可,则可以 NSWorkspace:
NSArray *volumes = [[NSWorkspace sharedWorkspace] mountedRemovableMedia];
如果您想从命令行或脚本或其他内容中查找出来, diskutil
应该派上用场。
$ diskutil info -plist /Volumes/Foobar
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
...snip...
<key>OpticalMediaType</key>
<string>CD-ROM</string>
...snip...
</dict>
</plist>
其他提示
对于可可,您可以使用NSWorkspace Mountedremovablemedia: 获取卷和使用nsworkspace的列表 getfilesysteminfo:... 要获取有关每个挂载音量的更多信息。
- (BOOL)getFileSystemInfoForPath:(NSString *)fullPath
isRemovable:(BOOL *)removableFlag
isWritable:(BOOL *)writableFlag
isUnmountable:(BOOL *)unmountableFlag
description:(NSString **)description
type:(NSString **)fileSystemType
如果要拨打系统电话,可以使用 Statfs 通过相同的信息。
int statfs(const char *path, struct statfs *buf);
不隶属于 StackOverflow