バイト数(数値)を自動単位変換(バイト・KB・MB・GB 付きの文字列)する (SNo.117) |
|
使用コントロール | Button1 |
その他条件 | WindowsXP(Vista) Visual Basic 2005(VB2008) |
★ バイト数(数値)を自動単位変換(バイト・KB・MB・GB 付きの文字列)する
'バイト数(数値)を単位変換(バイト・KB・MB・GB 付きの文字列)するAPI関数の宣言 Private Declare Function StrFormatByteSize64A Lib "SHLWAPI.DLL" ( _ ByVal qdw As Int64, ByVal pszBuf As String, ByVal uiBufSize As Integer) As Integer Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Debug.WriteLine(fGetFormatByteSize(1023)) '結果 1023 バイト Debug.WriteLine(fGetFormatByteSize(1024)) '結果 1.00 KB Debug.WriteLine(fGetFormatByteSize(1048576)) '結果 1.00 MB Debug.WriteLine(fGetFormatByteSize(2400016)) '結果 2.28 MB Debug.WriteLine(fGetFormatByteSize(6000000000)) '結果 5.58 GB End Sub 'バイト数(数値)を自動単位変換(バイト・KB・MB・GB 付きの文字列)する自作関数 Private Function fGetFormatByteSize(ByVal myFileSize As Decimal) As String Dim Ret As Integer Dim Buf As String Buf = New String(ControlChars.NullChar, 64) Ret = StrFormatByteSize64A(myFileSize, Buf, Buf.Length) Return Buf.TrimEnd(ControlChars.NullChar) End Function |
|
StrFormatByteSize 関数でも同様に変換できる事は知っていたのですが2GBまでだったので、自作したのを使っていたのですが、StrFormatByteSize64A API関数を知り、VB6.0 で試したらうまく取得できたので .NET でも試して見ました。 この関数は、IE5.0 以降がインストールされている必要があります。 |