未分类

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

来自群友cy , 看代码

Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByVal lpSecurityAttributes As Long, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
Private Declare Function GetFileSizeEx Lib "kernel32.dll" (ByVal hFile As Long, ByRef lpFileSize As Currency) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Function GetBigFileLen(ByVal FileName As String) As Currency
    Dim hFile As Long, nFileLen As Currency
    hFile = CreateFile(FileName, 8, 1, 0, 3, 0, 0)
    If hFile <> -1 Then
        If GetFileSizeEx(hFile, nFileLen) = 1 Then
           nFileLen = nFileLen * 10000
        End If
        CloseHandle (hFile)
        GetBigFileLen = nFileLen
    Else
        GetBigFileLen = -1
    End If
End Function

Private Sub Command1_Click()
  Print GetBigFileLen("E:\back10.21.rar")
End Sub

Views: 18

Hi, I’m 邓伟

本来无一物,何处惹尘埃

发表回复