OS X: какой объем DVD? - PullRequest
       18

OS X: какой объем DVD?

1 голос
/ 07 апреля 2009

Как программно определить, какие (если есть) подключенные тома являются 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

Ответы [ 2 ]

5 голосов
/ 07 апреля 2009

Какой язык программирования / инструментарий вы используете?

Если вы используете Какао в 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>
3 голосов
/ 07 апреля 2009

Для Какао вы можете использовать NSWorkspace mountRemovableMedia: , чтобы получить список томов, и использовать 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);
...