刨根问底:名叫《新建文本文档》内容为 test 的 txt 文件的大小,微软错了?

2017-01-15 15:17:10 +08:00
 crownprince
http://www.freebuf.com/articles/wireless/116169.html 看到文中提到了关于 “如何从不联网的电脑中盗取 1KB 名叫《新建文本文档》内容为 test 的 txt 文件”

神奇的朋友们的回复中有这样一条:“永远拿不到,因为一个名叫《新建文本文档》内容为 test 的 txt 文件是 4KB ”

无意间新建了一份文档进行测试,理论上讲 test 为 4 个英文字符,应该对应 4 字节,也就是 4Byte 即 4B ,
但在 Win7 的文件大小上分别出现了三个结果

4 字节和 4000 字节
![测试]( https://github.com/crown-prince/v2ex_TuChuang/blob/master/capture%20image.jpg)

1KB
![测试 1]( https://github.com/crown-prince/v2ex_TuChuang/blob/master/capture%20image2.jpg)

哪一个才是正确的呢?或是说,三者都正确,但分别代表了不同的意思?
v2ex 的小伙伴们求解答 :)
3244 次点击
所在节点    问与答
19 条回复
misaka19000
2017-01-15 15:20:39 +08:00
硬盘的最小划分单元貌似要大于 4byte
zander
2017-01-15 15:21:46 +08:00
一个簇占用 4KB ,一个文件至少一个簇。实际大小和占用大小。
图 2 是因为显示问题吧, 4 字节约等于 1KB 。
langmoe
2017-01-15 15:22:17 +08:00
zander
2017-01-15 15:24:14 +08:00
是簇还是扇区我不太记得了,这些概念很久没接触过了。
haozibi
2017-01-15 15:27:39 +08:00
4 子节是 test 占用 4 字节, 4kb 是占用硬盘, 4 字节的文件占用了一个簇的大小。
tabris17
2017-01-15 15:30:06 +08:00
那个回复想抖个机灵,然后完全是错的
cos
2017-01-15 15:35:54 +08:00
这个嘛,要看具体的文件系统是怎么分配的了。。。
FrankFang128
2017-01-15 15:37:00 +08:00
知道什么叫起步价吗
weiweiwitch
2017-01-15 15:38:54 +08:00
@FrankFang128 贴切,赞一个!
Liir
2017-01-15 15:44:55 +08:00
图二那里的 1KB 是因为资源管理器里详细信息视图中文件大小是 1KB 起跳的。

图一显示这个文件大小为 4B ,占用大小为 4KB ( 4069Bytes ,不是 4000Bytes 除非你是硬盘厂商)。这个占用大小是可以变的,取决于格式化硬盘的时候簇的大小。
wolfan
2017-01-15 15:49:51 +08:00
@tabris17 这个人的机灵 @FrankFang128 抖的不钷哟~
just1
2017-01-15 15:52:45 +08:00
bom 头
xuboying
2017-01-15 16:23:16 +08:00
看占用空间没意义啊,硬盘有起步价, ntfs 还支持压缩,加密。
xuboying
2017-01-15 16:26:41 +08:00
抛开磁盘,文件本身也有换行符区别和不可见的控制字符,必须用 16 进制编辑器查看。不过这个帖子可能没有涉及这类问题
Arcus
2017-01-15 16:45:34 +08:00
在 Windows 10 上还有一种结果, 0 字节
Arcus
2017-01-15 16:50:16 +08:00
Balthild
2017-01-15 19:25:13 +08:00
他说的是 FAT32 文件系统中的情况
venster
2017-01-15 19:30:22 +08:00
这不是很简单么?只要文件大小没有超过一个最小的占用空间,文件实际占用空间就是一个最小占用空间。一般情况下, Windows 默认最小占用空间是 4KB ,这个可以在格式化硬盘分区时指定。
搞不懂这么简单的问题怎么会搞得这么麻烦?
hx1997
2017-01-15 20:34:20 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/334716

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX