IO.FileInfo.Length возвращает объем содержимого файла. А как узнать, сколько этот файл занимает на диске?
(простите за нубский вопрос, искал, но не нашел)
.NET 2.0
Public Module FileSizeHelper
<DllImport("kernel32.dll")> _
Private Function GetCompressedFileSizeW(<MarshalAs(UnmanagedType.LPWStr)> ByVal filename As String, ByRef sz As UInteger) As UInteger
End Function
Private Function GetFileSize(ByVal fileName As String) As Long
Dim i1 As UInteger
Dim i2 As UInteger = 0
i1 = GetCompressedFileSizeW(fileName, i2)
Return ((CLng(i2)) << 32) Or (CLng(i1))
End Function
Public Function GetFileRealSpace(ByVal fileName As String) As Long
Dim fi As New FileInfo(fileName)
Dim result As Long
If fi.Attributes And FileAttributes.Compressed = FileAttributes.Compressed Then
result = GetFileSize(fileName)
Else
result = fi.Length
End If
Return result
End Function
End Module
Сейчас этот форум просматривают: Yandex-бот и гости: 36