gpt4 book ai didi

objective-c - 如何使用 Objective-C 重命名卷(分区)?

转载 作者:行者123 更新时间:2023-12-03 07:49:07 26 4
gpt4 key购买 nike

我以不同格式(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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com