我以不同格式(NTFS、FAT32、FAT16、HFS +)创建 vhd,我找不到获取 NTFS 分区的 $ Volume_name 偏移量的方法,而且我想将字符串转换为 $ Volume_name。通过观察 NTFS 分区的 $ Volume_name,我能够看到该字符串被剪切(每个字符之后有一个空字符,例如我们在 Volume_name 的十六进制中读取的内容为“WIN10EN”,在十六进制中读取为“57494e3130454e”,如果我们转到 $volume_name 的偏移量,我们将使用十六进制编辑器读取 570049004e003100300045004e 及其表示形式 ascii“W I N 1 0 E N”。 因此我的问题是有一个命令来获取 $Volume_name 的偏移量(偏移量以字节 15776 或 0x3DA0 为单位)? 是否有字符串转换来命名卷?
最佳答案
您好,要在 Mac 上使用 Xcode 重命名卷,最简单的方法是使用 DiskArbitration的功能以及更具体的
"void DADiskRename (DADiskRef disk, CFStringRef name, DADiskRenameOptions options, DADiskRenameCallback callback, void * context);
"
带有空回调。哪个可以给。
#import <DiskArbitration / DiskArbitration.h>
#import <Cocoa / Cocoa.h>
Void MountCallback (DADiskRef disk, DADitererRef dissenter, void * context);
Void DADiskRename (DADiskRef disk, CFStringRef name, DADiskRenameOptions options, DADiskRenameCallback callback, void * context);
Int rename (char * argv, char * device)
Int renomer ((char * argv, char * device)
{
Const char * deviceName = device;
Renom = 1;
CFStringRef name = CFStringCreateWithCString (NULL, argv, kCFStringEncodingUTF8);
DASessionRef session = DASessionCreate (kCFAllocatorDefault);
DADiskRef disk = DADiskCreateFromBSDName (kCFAllocatorDefault, session, deviceName);
DADiskRename (disk, name, 0x00000000, MountCallback, (void *) deviceName);
DASessionSetDispatchQueue (session, NULL);
CFRelease (session);
Session = NULL;
Return EXIT_SUCCESS;
}
Void MountCallback (DADiskRef disk, DADitererRef dissenter, void * context) {
Return;
}
关于objective-c - 如何使用 Objective-C 重命名卷(分区)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40900974/