Type a page name and press Enter. You'll jump to the page if it exists, or you can create it if it doesn't.
To create a page in a module other than kernel32, prefix the name with the module name and a period.
Private Declare Function GetCompressedFileSize Lib "kernel32" Alias "GetCompressedFileSizeA" (ByVal lpFileName As String, ByVal lpFileSizeHigh As IntPtr) As UInt32
Legacy VB Signature:
Private Declare Function GetCompressedFileSize Lib "kernel32" Alias "GetCompressedFileSizeA" (ByVal lpFileName As String, lpFileSizeHigh As Long) As Long
User-Defined Types:
None.
Notes:
The C# code below correctly obtains the compressed file size if >4 GB. The sample VB code does not appear to do so properly.
public ulong GetCompressedFileSize(string filename)
{
uint high;
uint low;
low = GetCompressedFileSizeAPI(filename, out high);
int error = Marshal.GetLastWin32Error();
if (high == 0 && low == 0xFFFFFFFF)
throw new Win32Exception(error);
else
return ((ulong)high << 32) + low;
}
Sample Code VB .NET:
Imports System.IO
·
·
·
Public Function CompressedFileSize(ByVal path As String) As Long
If File.Exist(path) Then
Try
Return Convert.ToInt64(GetCompressedFileSize(path, IntPtr.Zero))
Catch ex As Exception
Throw New IOException("The compressed size of the specified file could not be determined.")
End Try
End If
End Function
Sample code legacy VB:
Private Sub GetFileSize(ByVal strPath As String)
MsgBox "The size of " + strPath " is " + CStr(GetCompressedFileSize(strPath, ByVal 0&)) + " bytes "
End Sub
Alternative Managed API:
Do you know one? Please contribute it!
The GetCompressedFileSize API
10/4/2012 7:44:21 AM - -77.213.234.148
Please edit this page!
Do you have...
helpful tips or sample code to share for using this API in managed code?
corrections to the existing content?
variations of the signature you want to share?
additional languages you want to include?
Select "Edit This Page" on the right hand toolbar and edit it! Or add new pages containing supporting types needed for this API (structures, delegates, and more).