سؤال
كيف يمكنني تحديد أحجام مثبتة برمجيا (إن وجدت) دي في دي؟
أبحث حاليا عن دليل مع أذونات 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
المحلول
ما لغة البرمجة / مجموعة الأدوات التي تستخدمها؟
إذا كنت تستخدم الكاكاو في الهدف - ج، يمكنك 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