2013-10-26 58 views
2

我想將文件從文件轉換爲十六進制代碼,但它給了我一個錯誤。獲取C#中的十六進制文件大小#

的代碼,我到目前爲止有:

 public static string DecToHex(int decValue) 
    { 
     return string.Format("{0:x}", decValue); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     DirectoryInfo dinfo = new DirectoryInfo(@"C:\Users\Admin\Desktop\10 23\files"); 
     FileInfo[] Files = dinfo.GetFiles("*.xml"); 
     foreach (FileInfo file in Files) 
     { 
      listBox1.Items.Add(file.Name); 
     } 
    } 

    private void button2_Click(object sender, EventArgs e) 
    { 
     DirectoryInfo dinfo = new DirectoryInfo(@"C:\Users\Admin\Desktop\10 23\files"); 
     FileInfo[] Files = dinfo.GetFiles("*.xml"); 
     foreach (FileInfo file in Files) 
     { 
      listBox2.Items.Add(DecToHex(file.Length)); 
     } 
    }  

的錯誤是」 ..不能從‘長’到‘廉政’轉換 也許有人知道一個更好的方式來顯示文件大小爲十六進制。

我在C++這段代碼

if(m_bAlgorithm[HASHID_SIZE_32]) 
{ 
    sizehash32_end(&m_uSizeHash32); 
    printf(SZ_SIZEHASH_32); 
    printf(SZ_HASHPRE); 

    printf("%08X", m_uSizeHash32); 

    printf(CPS_NEWLINE); 
} 

回答

4

爲什麼不改變DecToHex方法來代替長接受。

FileInfo.Length返回一個長整數,您可以使用長整數作爲string.Format的參數。

public static string DecToHex(long decValue) 
    { 
     return string.Format("{0:x}", decValue); 
    } 
+0

謝謝!這解決了我的問題:3 – user2694190

+0

當然,我不得不等待10分鐘。問題解決了! – user2694190