2009-04-07 10 views
1

Comment puis-je déterminer par programme quels volumes montés (le cas échéant) sont un DVD?OS X: quel volume est un DVD?

Je recherche actuellement un répertoire avec les permissions 555 mais je préférerais quelque chose d'un peu moins hacky. Merci!!

$ 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 

Répondre

5

Quel langage de programmation/toolkit utilisez-vous?

Si vous utilisez Cocoa en Objective-C, vous pouvez NSWorkspace:

NSArray *volumes = [[NSWorkspace sharedWorkspace] mountedRemovableMedia]; 

Si vous voulez savoir à partir de la ligne de commande ou d'un script ou quelque chose, diskutil devrait être utile.

$ 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> 
+0

peut aussi dire DVD-ROM – rogerdpack

3

pour le cacao, vous pouvez utiliser NSWorkspace mountedRemovableMedia: pour obtenir une liste des volumes et l'utilisation NSWorkspace getFileSystemInfo:... pour obtenir plus d'informations sur chaque volume monté.

- (BOOL)getFileSystemInfoForPath:(NSString *)fullPath 
        isRemovable:(BOOL *)removableFlag 
         isWritable:(BOOL *)writableFlag 
        isUnmountable:(BOOL *)unmountableFlag 
        description:(NSString **)description 
          type:(NSString **)fileSystemType 

Si vous voulez faire des appels système, vous pouvez utiliser statfs les mêmes informations.

int statfs(const char *path, struct statfs *buf);