2013-02-21 124 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