2013-02-21 122 views
3

我正在更新我已寫入並在Mac App Store中存在的備份實用程序。如何查找磁盤卷的格式

在Macintosh Cocoa應用程序中,如何查找磁盤卷的格式化方式?我發現唯一官方的事情就是爲'NSURLVolumeLocalizedFormatDescriptionKey'做一個GetResourceValue:但是這是語言相關的。

我的實用程序不支持格式化爲FAT32的卷。我的公用事業需要爲XSan驅動器做特殊處理。

回答

5

statfs(2)會給你一個非本地化名稱:

struct statfs volinfo; 
if(statfs("/path/to/your/volume", &volinfo) != 0) 
{ 
    perror("statfs"); 
    return -1; 
} 

fprintf(stderr, "%s\n", volinfo.f_fstypename); 

爲將在f_fstypename返回的名字見/System/Library/Filesystems

+0

作品!我注意到「MobileBackups」iCloud驅動器是「mtmfs」,它不是列出的文件系統之一。將url.path轉換爲C字符串時,我使用哪種編碼?我正在使用'NSASCIIStringEncoding'。 – NPAssoc 2013-02-26 22:53:21

+1

使用'[[url path] fileSystemRepresentation]';比照https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html – jatoben 2013-02-27 00:19:40

0

這個問題已經回答了,但我會扔我的2美分...

/sbin/mount | grep acfs | awk '{print $3}' 

此輸出

/Volumes/XsanVolumeName1 
/Volumes/XsanVolumeName2 
+0

我需要找出特定卷的*格式*,而不是其他我需要在Objective C中做到這一點。您向我展示了使用特定文件系統的卷 - 有趣的想法,但這不是我想要的。 – NPAssoc 2017-03-31 21:24:48