我創建了不同格式的vhd(NTFS,FAT32,FAT16,HFS +),我沒有找到獲得NTFS分區的$ Volume_name偏移量的方式,再加上我想將字符串轉換爲$ Volume_name。通過觀察NTFS分區的$ Volume_name,我可以看到該字符串被剪切(每個字符後面都有一個空字符示例,我們在volume_name的十六進制中讀取的將是「WIN10EN」,而在hexa「57494e3130454e」中if我們轉到$ volume_name的偏移量,我們將用一個十六進制編輯器570049004e003100300045004e及其表示ascii「WIN 1 0 EN」。 因此我的問題是有一個命令來獲得$ Volume_name的偏移量(偏移量是字節15776或0x3DA0)? 是否有一個字符串轉換來命名一個卷?如何用Objective-C或perl,python,ruby,sh,applescript重命名卷(分區)?
-2
A
回答
-1
在創建一個Vhd當然有格式化的分區(我的Vhd創建了一個獨特的MBR分區)根據所選的diskutil格式系統根據diskutil分區的名稱限制爲NTFS名稱都是大寫字母,對於MSDOS FAT同義詞。只要使用NTFS或FAT分區,您就可以使用帶小寫字母的名稱。因此,格式化NTFS分區後,我使用「newfs_ufsd_NTFS -v」重新命名大寫字母和小寫字母。對於FAT,我將newsfsms(版本226 https://opensource.apple.com/tarballs/msdosfs/msdosfs-226.tar.gz)newfs_msdos.c文件更改爲「mklabel (u_int8_t** * dest, Const char * src)
」中的第1320行,其中我們找到「c = * src? Toupper (* srC++): '';"
更改爲」c = * src? * SrC++: '';
「**,這使得可以使用大寫字母或小寫字母。解決方案,我找不到如何從NTFS分區獲得$ Volume_name偏移量的答案。
1
你好,要在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;
}
相關問題
- 1. 如何使用Perl重命名文件
- 2. 用AppleScript重命名iTunes文件
- 3. 捲曲腳本在PHP或Python,Perl的
- 4. 如何使用Python重命名文件
- 5. 如何用Python重命名文件?
- 6. /bin/sh:如何從&3重定向到命名管道?
- 7. 重命名ORACLE中的分區
- 8. python文件被重命名,如何獲得'重命名時間'
- 9. 如何重命名Google存儲分區中的對象?
- 10. Applescript - 重複文件夾,然後重命名和重命名文件
- 11. 重命名使用Perl文件
- 12. 用區分大小寫的名稱重命名文件夾
- 13. 用Python重命名文件
- 14. 重命名在python
- 15. 如何重命名包含在python
- 16. 「SH -x」 等效Perl和Python腳本
- 17. 使用python重命名文件名
- 18. Azure卷軸命名
- 19. 表重命名和交換分區之間的區別
- 20. AppleScript的文件命名
- 21. 在AppleScript上捲曲
- 22. 如何重命名由錯誤「-update」命名的git分支?
- 23. 如何在python中用文件名重命名數據框?
- 24. 如何在ruby中使用MongoMapper重命名數據庫?
- 25. eclipse工作區:如何重命名工作區
- 26. 在Bash或Perl中重命名和移動文件
- 27. AppleScript焦點/重命名文件(並點擊任何地方)
- 28. 在mysql中使用分區重命名錶
- 29. 嘗試使用Applescript重命名文件夾內的文件
- 30. 如何在運行中命名或重命名VB 2010對象或屬性?
從[虛擬硬盤圖像格式規格](http://download.microsoft.com/download/f/f/e/ffef50a5-07dd-4cf8-aaa3-442c0673a029/Virtual%20Hard% 20Disk%20Format%20Spec_10_18_06.doc),我認爲卷名是Unicode編碼爲UTF-16,這將解釋您在字符串中看到的「剪切」字符。 Python有廣泛的Unicode支持(我不知道所有其他的)。 – martineau
感謝您的澄清,問題不是特定於vhd,所有卷(NTFS)(NTFS中的分區)具有相同的結構並具有$ Volume_name(這是分區的名稱)獲取$ Volume_name偏移量並將字符串轉換爲重命名。 謝謝你花在這個主題上的時間。 – deek5