登录|注册
论坛 > 若闲小阁
发帖|看图模式| 收藏 |打赏
看1054|回19|收藏|打赏
1# 不死鸟之翼 只看他
2016-11-26 23:39:36 No. 44071789
稀疏文件文件系统支持的一项功能。按照维基百科的定义,文件系统负责“控制数据的存取”。硬盘里面只是一大堆0和1,有了文件系统才有文件、文件夹等我们熟知的这些概念。

稀疏文件
是指绝大部分区域都是0的文件。这样的文件只有一小部分是有数据的,好比一个一万行的txt文件里只有一行字。为了存储这样的文件,如果完整地保存所有字节,显然很浪费空间。Windows常用的NTFS文件系统支持稀疏文件。将一个文件标记为稀疏后,将只会为非零的部分分配实际的存储空间。

下面我们使用C/C++语言创建一个稀疏文件。
  1. #include <Windows.h>

  2. int main() {
  3.         //创建一个名为sparse.bin的文件
  4.         HANDLE hFile = CreateFileW(L"sparse.bin", GENERIC_READ | GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, NULL, NULL);
  5.         if (hFile != INVALID_HANDLE_VALUE) {
  6.                 DWORD result;
  7.                 //告诉文件系统驱动,这个文件是稀疏的
  8.                 DeviceIoControl(hFile, FSCTL_SET_SPARSE, NULL, 0, NULL, 0, &result, NULL);
  9.                 LARGE_INTEGER size;
  10.                 ULONGLONG K = 1024;
  11.                 //令size为16TB-64KB(这是我的系统上最大的单个文件尺寸)
  12.                 size.QuadPart = K*K*K*K * 16 - K * 64;
  13.                 //设置文件指针位置到size
  14.                 SetFilePointerEx(hFile, size, NULL, FILE_BEGIN);
  15.                 //将文件结尾设置为当前位置
  16.                 SetEndOfFile(hFile);
  17.                 //关闭文件
  18.                 CloseHandle(hFile);
  19.         }
  20. }
复制代码
编译运行以后,会在当前目录创建一个接近16TB的文件,就像这样
[查看图片]
专治各类硬盘壕,有木有!
即使你的硬盘可用空间不足16TB也没有关系,由于我并没有写入任何实际数据,只是告诉文件系统,我有一个16TB大的文件。右键打开属性对话框,会发现文件大小为17592185978880字节,占用空间为0字节。虽然不会实际占用硬盘空间,但是在统计文件夹大小的时候会算进去的。如果弄出64个文件,你就有了一个“1PB”的文件夹(1PB=1024TB)
2# 轩梦欣 只看他
2016-11-26 23:51:29 No. 44071941
所以这是用来假装壕的方法么2333
话说,wav音频如果有静音段落的话压缩后尤其是用7z格式压缩时体积会大幅减小,这个跟稀疏文件有关系么@.@
↑↑↑↑ 合唱交音总结出的经验233
3# 绿川贞胜 只看他
2016-11-26 23:53:22 No. 44071968
这个真的是专治各种不服
4# 不死鸟之翼 只看他
2016-11-27 00:02:10 No. 44072216
轩梦欣 发表于 2016-11-26 23:51 [查看图片]
所以这是用来假装壕的方法么2333
话说,wav音频如果有静音段落的话压缩后尤其是用7z格式压缩时体积会大幅减 ...

在思想上有相似的地方。如果有人想看我科普的话一会我再写一篇?
5# Mars_ 只看他
2016-11-27 00:13:56 No. 44072661
原来如此这般?!
6# HavokPro 只看他
2016-11-27 01:13:02 No. 44073874
这个。。虽然不确定是不是稀疏文件,貌似直接用命令提示符或者注册表也可以创造超大的文件吧
7# wwwq1210 只看他
2016-11-27 01:13:11 No. 44073880
建來做什麼的
萌新路過來學習
8# 神圣之炎光 只看他
2016-11-27 01:33:56 No. 44074111
这就是所谓的豆知识吗
9# 神楽坂凛 只看他
2016-11-27 02:53:26 No. 44074643
所以度盘变八秒教育片的视频大小不变也是这个原理?
10# chenhy 只看他
2016-11-27 09:16:30 来自天使动漫安卓APP No. 44077215
好厉害的方法

天使动漫论坛|手机版错误报错

字幕组★|手机客户端

Powered by Discuz! TSDM SP

首页|标准版|精简版|电脑版

Processed in 0.127814 second(s), 29 queries .