2

ファイルサイズをファイルから 16 進コードに変換しようとしていますが、エラーが発生します。

私がこれまでに持っているコード:

     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 に答える