2015-10-31 188 views
-1

我用CSharp語言編寫程序。 但是,我有一個很大的問題。 我正在製作一個程序,通過十六進制讀取文件並將十六進制轉換爲字符串。 但是,我無法完美地得到字符串。 藍色的是我想要轉換爲字符串的十六進制代碼。 this is hex code...C#十六進制字符串問題

但我不能只得到59fd50a62fb9a8ef,不包括文件擴展名。

我想得到這樣59fd50a62f9a8ef.bmp

我該怎麼辦完美字符串?

這是將十六進制轉換爲字符串的源代碼。

string toString(string hexString) 
    { 
     var bytes = new byte[hexString.Length/2]; 
     for (var i = 0; i < bytes.Length; i++) 
     { 
      bytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2), 16); 
     } 
     return Encoding.Unicode.GetString(bytes); 
    } 
+0

爲什麼精確你想要做到這一點? –

+0

,因爲我需要在數據庫文件中獲取精確的文件名。 –

+0

您顯示的十六進制文件沒有文件擴展名,所以只需將其附加到轉換後的字符串即可。 –

回答

0

您無法從突出顯示的字節中獲取文件擴展名。據我可以告訴他們包含一個十六進制文件名,你已經成功地提取,字符串字符(兩個零)的結尾,位圖的開始(BM)和位圖的長度(little endian36 10 00 00)。因此,要獲取文件名,您只需將.bmp附加到您的十六進制字符串。

但是,如果圖像並不總是位圖,那麼您應該創建一個從字符串字符結束後的字節中推導出文件類型的函數。

相關問題