2009-04-07 7 views
1

どのように(もしあれば)マウントされたボリュームがDVDであるかをプログラムで判別できますか?OS X:どのボリュームが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 

答えて

5

どのようなプログラミング言語/ツールキットを使用していますか?

あなたは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> 
+0

代わりにDVD-ROM – rogerdpack

3

ココアでは、各マウントされたボリュームに関する詳細情報を取得するには、ボリュームや使用NSWorkspace getFileSystemInfo:...のリストを取得するにはNSWorkspace mountedRemovableMedia:を使用することができます。

- (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);