各种格式化文件大小为字符串的函数FormatFileSize
asp的: Public Function formatdsize(dsize) 有用的思想: ASP中file.filesize>2000000是限制到多少K呀? <%dim sc_dx'//定义上传文件大小,单位KB 这个sc_dx就是30KB了,这个方法可以用到以后的vb.net 上传图片到sql server里面。 VB.Net的:from: http://www.devx.com/tips/Tip/21185
Convert the Filesize in a Number into String Format
This code converts the filesize in a number to string format—for instance,1000 Bytes,1 KB,etc.
Option Explicit ' Add a module and copy paste this function. ' To test this function,call this function from Immediate window by passing ' file size to it. e.g. ?GetFileSizeString(1000),GetFileSizeString(10000) Private Declare Function StrFormatByteSize Lib "shlwapi.dll" Alias "StrFormatByteSizeA" _ (ByVal dw As Long,ByVal szBuf As String,ByVal uiBufSize As Long) As Long Private Function GetFileSizeString(ByVal lngFileSize As Long) As String Dim strBuff As String strBuff = Space$(100) StrFormatByteSize lngFileSize,strBuff,Len(strBuff) GetFileSizeString = Replace(Trim$(strBuff),vbNullChar,"") End Function ------------------------Module Module1
Sub Main()
Dim i As Long '随便找一个数字来测试 i = 50850000000000000 Console.WriteLine("--{0}--",i) Console.WriteLine("1. " & FormatFileSize(i,False)) Console.WriteLine("2. " & sFormatFileSize(i)) Console.WriteLine("3. " & nFormatFileSize(i)) Console.ReadLine() End Sub
'--------这个是老外写的。
Function FormatFileSize(ByVal FileSize As Decimal,Optional ByVal DecimalDigits As Byte = 1,Optional ByVal Bytes As Boolean = True) As String If FileSize = 0 Then Return "0" & IIf(Bytes,"bytes","bits") ' Prevent overflow Dim Power As Integer = Math.Min(Math.Floor(Math.Log(Math.Ceiling(Math.Abs(FileSize)),1024)),8) Dim Str As String = IIf(Power = 0,IIf(Bytes,"bits"),New String() {"KB","MB","GB","TB","PB","EB","ZB","YB"}(Power - 1)) Return Format(FileSize / (1024 ^ Power),"#." & StrDup(DecimalDigits,"0")) & " " & IIf(Bytes,Str,LCase(Str)) End Function
'改成这个
Function sFormatFileSize(ByVal FileSize As Decimal,Optional ByVal DecimalDigits As Byte = 1) As String If FileSize = 0 Then Return "0" Dim Power As Integer = Math.Min(Math.Floor(Math.Log(Math.Ceiling(Math.Abs(FileSize)),8) Dim Str As String = New String() {"KB","YB"}(Power - 1) Return Format(FileSize / (1024 ^ Power),"0")) & " " & Str End Function
'修改版本,毕竟现在硬盘刚刚出TB级别的,所以TB应该就够用的了。
Function nFormatFileSize(ByVal FileSize As Decimal,4) Dim Str As String = New String() {"KB","TB"}(Power - 1) Return Format(FileSize / (1024 ^ Power),"0")) & " " & Str End Function
End Module
---------------------- c#的: Read more: "An example on how to format file size in C#" - http://www.waynejohn.com/post/2008/04/04/An-example-on-how-to-format-file-size-in-C.aspx#ixzz0ArSxzGDB public class FileHelper 或者调用API函数: StrFormatByteSize (StrFormatByteSizeA,StrFormatByteSizeW or StrFormatByteSize64) 来源from:http://bytes.com/groups/net-c/515107-there-any-file-size-format-function-c private string formatsizekb(double dsize) if (dsize < iKB) if (dsize >= iKB && dsize < iMB) if (dsize >= iMB && dsize < iGB) if (dsize >= iGB ) } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |