⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 文件的所占空间和文件大小之和为什么不同.txt

📁 以电子书的形式收集了VB一些常见问题解决方法,可以很方便的查找自己需要解决的问题.对一些VB初学者很用.
💻 TXT
字号:
实 际 上 字 节 并 不 是 保 存 文 件 的 最 小 单 元 。 操 作 系 统 将 硬 盘 划 分 为 若 干 个 簇 , 然 后 以 簇 作 为 最 小 单 位 保 存 文 件 。 每 个 簇 的 大 小 因 为 操 作 系 统 和 分 区 大 小 而 不 同 。 例 如 Win9x/FAT16分 区 , 如 果 分 区 小 于 512M, 每 个 簇 为 8K; 大 于 512M, 每 个 簇 为 16K。 如 果 一 个 文 件 为 1K, 那 么 在 小 于 512M的 分 区 , 它 占 用 8K; 在 大 于 512M的 分 区 , 它 占 用 16K。 大 于 一 个 文 件 , 文 件 大 小 和 占 用 空 间 之 间 的 差 距 很 小 。 但 对 于 一 个 目 录 中 的 多 个 文 件 , 这 种 差 别 可 能 非 常 大 。 所 以 你 要 是 计 算 占 用 空 间 , 先 调 用 GetDiskFreeSpace获 得 磁 盘 的 簇 的 大 小 。 然 后 利 用 文 件 大 小 除 以 簇 的 大 小 并 将 小 数 进 位 得 到 占 用 的 簇 数 , 然 后 再 乘 以 簇 的 大 小 就 可 以 获 得 获 得 文 件 占 用 的 空 间 。 
     Private Declare Function GetDiskFreeSpace Lib "kernel32" Alias _ 
     "GetDiskFreeSpaceA" (ByVal lpRootPathName As String, _ 
     lpSectorsPerCluster As Long, lpBytesPerSector As Long, _ 
     lpNumberOfFreeClusters As Long, lpTotalNumberOfClusters As Long) _ 
     As Long 
     
     Private Type DiskInformation 
     lpSectorsPerCluster As Long 
     lpBytesPerSector As Long 
     lpNumberOfFreeClusters As Long 
     lpTotalNumberOfClusters As Long 
     End Type 
     
     Private Sub Command1_Click() 
     Dim info As DiskInformation 
     Dim lAnswer As Long 
     Dim lpRootPathName As String 
     Dim lpSectorsPerCluster As Long 
     Dim lpBytesPerSector As Long 
     Dim lpNumberOfFreeClusters As Long 
     Dim lpTotalNumberOfClusters As Long 
     Dim sString As String 
     
     lpRootPathName = "c:\" 
     lAnswer = GetDiskFreeSpace(lpRootPathName, lpSectorsPerCluster, _ 
     lpBytesPerSector, lpNumberOfFreeClusters, lpTotalNumberOfClusters) 
     sString = "Number of per cluster : " & lpBytesPerSector * lpSectorsPerCluster 
     
     MsgBox sString 
     End Sub 
<END>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -