VB获取超过2G文件的大小

项目当中需要读取采集生成的AVI文件大小,特记录如下:

'获得文件大小
Public Function GetFileSizeByName(ByVal sFileName As String) As Double

    On Error GoTo ErrHandle
    Dim FileHandle As Long
    Dim FileInfo As BY_HANDLE_FILE_INFORMATION
    Dim lpReOpenBuff As OFSTRUCT
    Dim Ret As Currency
    Dim fl As Double
1000
    fl = FileLen(sFileName)
1001
    If fl < 0 Then
1002
        FileHandle = OpenFile(sFileName, lpReOpenBuff, OF_READ)
1003
        Call GetFileInformationByHandle(FileHandle, FileInfo)
1004
        Call CloseHandle(FileHandle)
1005
        CopyMemory ByVal VarPtr(Ret), ByVal VarPtr(FileInfo.nFileSizeLow), ByVal 4&
1006
        CopyMemory ByVal VarPtr(Ret) + 4, ByVal VarPtr(FileInfo.nFileSizeHigh), ByVal 4&
1007
        GetFileSizeByName = CDbl(FormatNumber(Ret * 10000, 0, , , vbTrue))
1008
    Else
1009
        GetFileSizeByName = fl
1010
    End If
1011
    Exit Function

ErrHandle:

    If Err.Number <> 0 Then

        WriteLog "<---" & CStr(Now) & "--->" & vbCrLf & String$(64, "*") & vbCrLf & _
                 "错误函数:采集控件TJCapture->modGlobal->GetFileSizeByName" & vbCrLf & _
                 "错误编号:" & Err.Number & vbCrLf & _
                 "错误描述:" & Err.Description & vbCrLf & vbCrLf & _
                 "sFileName = " & sFileName & vbCrLf & _
                 "错误地址:" & Erl & vbCrLf & String$(64, "*") & vbCrLf
        Err.Clear

    End If

End Function

另外说明下,代码每行前面的数字是为了干吗的,请注意这句 《"错误地址:" & Erl 》,其实很简单VB中有个函数就是返回出错的行数这个函数叫Erl,配合前面的标签,就能在代码出错的时候定位到错误所在行...

文章来自:VB获取超过2G文件的大小



VB相关

vbline的用法[]

画图工具的VB实现

VB 一个获得自己外网 IP 地址的程序代码

VB程序中实现IP地址子网掩码网关DNS的更改  []

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值