我要得到一个文件的长度,现在用filelen函数,可是我的文件有4g以上,可是filelen函数返回的时long数据类型,这应该怎么处理?还有得到磁盘容量的大小的函数,也存在同样的问题,大家是怎么处理的?
谢谢!

解决方案 »

  1.   

    给你一段代码:
    Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
    Private Declare Function GetFileSize Lib "kernel32" (ByVal hFile As Long, lpFileSizeHigh As Long) As Long
    Private Declare Function OpenFile Lib "kernel32" (ByVal lpFileName As String, lpReOpenBuff As OFSTRUCT, ByVal wStyle As Long) As LongPublic Function DblFileSize(Filename As String) As Double
       Dim lngSizeHigh As Long, lngSizeLow As Long
       Dim lngHandle   As Long
       Dim OF As OFSTRUCT
       
       lngHandle = OpenFile(Filename, OF, OF_READ)
       'size of the file
       lngSizeLow = GetFileSize(lngHandle, lngSizeHigh)
       CloseHandle lngHandle
       DblFileSize = CDbl(lngSizeHigh * 2# ^ 32 + (lngSizeLow And &H7FFFFFFF) + IIf(lngSizeLow And &H80000000, 2# ^ 31, 0))
    End Function