2

我正在尝试将文件大小从文件转换为十六进制代码,但它给了我一个错误。

我到目前为止的代码:

     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));
        }
    }     

错误是“.. 无法从 'long' 转换为 'int' 。也许有人知道将文件大小显示为 hex 的更好方法。

我在 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

1 回答 1

4

为什么不将DecToHex方法更改为接受 long 代替。

FileInfo.Length返回一个 long 并且您可以使用 long 作为 的参数string.Format

public static string DecToHex(long decValue)
    {
        return string.Format("{0:x}", decValue);
    }
于 2013-10-26T10:01:38.527 回答