• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Tính Size cho File có kích thước lớn

Các thủ thuật về hệ thống, thư mục, tập tin và mạng
Hình đại diện của người dùng
tuyen_dt18
Guru
Guru
Bài viết: 259
Ngày tham gia: T.Bảy 19/04/2008 8:46 pm
Đến từ: Hưng Yên
Been thanked: 43 time
Liên hệ:

Tính Size cho File có kích thước lớn

Gửi bàigửi bởi tuyen_dt18 » T.Tư 03/06/2009 7:09 pm

Thủ thuật: Tính Size cho File có kích thước lớn
Tác giả: API Guide + tuyen_dt18
Mô tả: Tính Size cho File có kích thước lớn


Bài này giới thiệu cách tính dung lượng cho các File có dung lượng vượt quá số dạng Long, VB không thể
tính được và thường cho ra số âm

Mã: Chọn hết

  1.  
  2. ' Khai bao ham API
  3. Private Declare Function CreateFile Lib "kernel32.dll" Alias "CreateFileW" ( _
  4.        ByVal lpFileName As Long, ByVal dwDesiredAccess As Long,  _
  5.        ByVal dwShareMode As Long, ByRef lpSecurityAttributes As Any , _
  6.        ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, _
  7.        ByVal hTemplateFile As Long) As Long
  8. Private Declare Function CloseHandle Lib "kernel32.dll" ( _
  9.        ByVal hObject As Long) As Long
  10. Private Declare Function GetFileSizeEx Lib "kernel32.dll" (ByVal hFile As Long, _
  11.        ByRef lpFileSize As Currency) As Long
  12.  
  13. Private Const GENERIC_ALL As Long = &H10000000
  14. Private Const FILE_SHARE_WRITE As Long = &H2
  15. Private Const FILE_SHARE_READ As Long = &H1
  16. Private Const OPEN_EXISTING As Long = 3
  17. Function FileLenW( ByVal sFileName As String ) 'As Currency
  18.      On Error Resume Next
  19.      Dim hFile As Long,wSize As Long
  20.      hFile=CreateFile( StrPtr( sFileName), GENERIC_ALL, FILE_SHARE_WRITE +FILE_SHARE_READ _
  21.            ByVal 0&, OPEN_EXISTING, ByVal 0& )
  22.      GetFileSizeEx hFile, wSize
  23.      CloseHandle hFile
  24.      
  25.      ' FileLenW=IIf(FileLen(sFileName)>0, FileLen(sFileName), wSize * 10000)
  26.      FileLenW=  wSize * 10000
  27.  
  28. End Function
  29.  
  30. ' Cach dung
  31.  MsgBox "File size : " & FileLenW( "Đường dẫn tệp tin cần tính ")
  32.  


Hỏi ý kiến tác giả trước khi sử dụng hoặc trích dẫn rõ nguồn bài viết khi sử dụng.

Hình đại diện của người dùng
clarkkent
Mạnh Thường Quân
Mạnh Thường Quân
Bài viết: 1641
Ngày tham gia: T.Tư 16/04/2008 11:25 am
Đến từ: Chợ Lách - Bến Tre
Been thanked: 31 time
Liên hệ:

Re: Tính Size cho File có kích thước lớn

Gửi bàigửi bởi clarkkent » T.Bảy 06/06/2009 11:18 pm

cách này nữa

Mã: Chọn hết

  1. 'reference Microsoft Scripting Runtime    
  2.     Dim fso As New FileSystemObject
  3.     Dim f As File
  4.     Set f = fso.GetFile("E:\gobackio.bin")
  5.     MsgBox f.Size
• Hôm bây: www.tinsoftware.com ^ ^
Cố gắng lên...


Quay về “[VB] Hệ thống - Tập tin - Thư mục và Mạng”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.0 khách