Frage

Wie kann ich programmgesteuert bestimmen, welche (falls vorhanden) montierten Volumina eine DVD sind?

Ich suche derzeit nach einem Verzeichnis mit den Berechtigungen 555, aber ich würde etwas weniger hackig bevorzugen. Vielen Dank!!

$ 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
War es hilfreich?

Lösung

Welche Programmiersprache/welches Toolkit verwenden Sie?

Wenn Sie Kakao in Objective-C verwenden, können Sie NsWorkspace:

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

Wenn Sie aus der Befehlszeile oder einem Skript oder so etwas herausfinden möchten, diskutil sollte nützlich sein.

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

Andere Tipps

Für Kakao können Sie NsWorkspace verwenden Mountedremovablemedia: um eine Liste von Bänden und die Verwendung von NsWorkspace zu erhalten GetFilesysteminfo: ... Um weitere Informationen zu jedem montierten Volumen zu erhalten.

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

Wenn Sie Systemanrufe tätigen möchten, können Sie verwenden StatFs bei den gleichen Informationen.

int statfs(const char *path, struct statfs *buf);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top