加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

各种格式化文件大小为字符串的函数FormatFileSize

发布时间:2020-12-16 23:33:08 所属栏目:大数据 来源:网络整理
导读:asp的: Public Function formatdsize(dsize) if dsize=1073741824 then formatdsize=Formatnumber(dsize/1073741824,2) " GB" elseif dsize=1048576 then formatdsize=Formatnumber(dsize/1048576,2) " MB" elseif dsize=1024 then formatdsize=Formatnumbe

asp的:

Public Function formatdsize(dsize)
if dsize>=1073741824 then
formatdsize=Formatnumber(dsize/1073741824,2) & " GB"
elseif dsize>=1048576 then
formatdsize=Formatnumber(dsize/1048576,2) & " MB"
elseif dsize>=1024 then
formatdsize=Formatnumber(dsize/1024,2) & " KB"
else
formatdsize=dsize & "B"
end if
End Function

有用的思想:

ASP中file.filesize>2000000是限制到多少K呀?

<%dim sc_dx'//定义上传文件大小,单位KB
sc_dx=30
x.SetFileSize(sc_dx*1024) '最大文件大小
%>

这个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
{
private static readonly long kilobyte = 1024;
private static readonly long megabyte = 1024 * kilobyte;
private static readonly long gigabyte = 1024 * megabyte;
private static readonly long terabyte = 1024 * gigabyte;
public static string ToByteString(long bytes)
{
if (bytes > terabyte)
return (bytes / terabyte).ToString("0.00 TB");
else if (bytes > gigabyte) return (bytes / gigabyte).ToString("0.00 GB");
else if (bytes > megabyte) return (bytes / megabyte).ToString("0.00 MB");
else if (bytes > kilobyte) return (bytes / kilobyte).ToString("0.00 KB");
else return bytes + " Bytes";
}
}

或者调用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)
{
const int iKB = 1024;
const long iMB = 1048576;
const long iGB= 1073741824;

if (dsize < iKB)
return string.format("{0} bytes",dsize);

if (dsize >= iKB && dsize < iMB)
return string.format("{0} KB",dsize/iKB);

if (dsize >= iMB && dsize < iGB)
return string.format("{0} MB",dsize/iMB);

if (dsize >= iGB )
return string.format("{0} GB",dsize/iGB);

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读