[비베] GetFileSize API 사용하기
본문
GetFileSize API는 말그대로
파일 사이즈를 바이트로 가져와줘요.
Private Declare Function GetFileSize Lib "kernel32" (ByVal hFile As Long, lpFileSizeHigh As Long) As Long
hFile : File 핸들을 가져와야해요. ( 파일주소쓰지. )
lpFileSizeHigh : Double-word 가 필요치 않을때는 0을 넘겨주면 되요.
말로 설명하면 모릅니다. 그냥 예제보죠.
Private Declare Function GetFileSize Lib "kernel32" (ByVal hFile As Long, lpFileSizeHigh 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 Const GENERIC_WRITE = &H40000000
Private Const FILE_SHARE_WRITE = &H2
Private Const FILE_SHARE_READ = &H1
Private Const FILE_ATTRIBUTE_NORMAL = &H80
Private Const OPEN_EXISTING = 3
'선언부
Function FileLen( Path As String )
Dim hFile As Long
hFile = CreateFile(Path, GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, ByVal 0&, OPEN_EXISTING, 0&, 0&)
FileLen = GetFileSize(hFile, 0)
End Function
' 여긴 CreateFile 공부하는 곳이 아니니 그냥 파일의 핸들을 가져온다고 생각합시다... 분명 강좌하나가 있을꺼예요.
보시면 알겠지만 CreateFile 로 직접 불러들여 hFile을 작성합니다. 파일 핸들.
그걸 그냥 계산 하면 되겠습니다.
뭐 여기선 GetFileSize가 중심이지만
hFile = CreateFile(Path, GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, ByVal 0&, OPEN_EXISTING, 0&, 0&)
댓글목록 0
등록된 댓글이 없습니다.