7,763
社区成员
发帖
与我相关
我的任务
分享
Option Explicit
Const GENERIC_READ = &H80000000
Const FILE_SHARE_READ = &H1
Const OPEN_EXISTING = 3
Const FILE_TYPE_CHAR = &H2
Const FILE_TYPE_DISK = &H1
Const FILE_TYPE_PIPE = &H3
Const FILE_TYPE_UNKNOWN = &H0
Private Declare Function GetFileType Lib "kernel32" (ByVal hFile As Long) As Long
Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As Any, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
Private Declare Function GetFileSizeEx Lib "kernel32" (ByVal hFile As Long, lpFileSize As Currency) As Boolean
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Sub Form_load()
Debug.Print GetBigSize("i:\c_pan.gho")
End Sub
Public Function GetBigSize(ByVal PathName As String) As Currency
Dim hFile As Long, nSize As Currency
hFile = CreateFile(PathName, GENERIC_READ, FILE_SHARE_READ, ByVal 0&, OPEN_EXISTING, ByVal 0&, ByVal 0&)
GetFileSizeEx hFile, nSize
CloseHandle hFile
GetBigSize = nSize * 10000
End Function
Dim BytDate() As Byte
Dim FileName As String
Dim lngFile As Long
Dim i As Long
lngFile = FileLen(PutFileName) \ 8192 '取得文件长度
For i = 0 To lngFile
ReDim myfile(8191) As Byte '初始化数组
Open PutFileName For Binary As #1 '打开文件
Get #1, i * 8192 + 1, myfile '将文件写入数组
Close #1 '关闭文件
DoEvents
Next i