【学习】NTFS 数据流(ADS)
作者:JiaJia 日期:2007-10-11
因为一直以来都不喜欢用NTFS格式的分区,所以对这写都不了解,最近看到一些相关的资料,准备开始学习一下。先来点资料...
MS的说法:
在 NTFS 文件系统下,每个文件都可以有多个数据流。值得一提的是,流不是 NTFS 2000 的功能,但是从 Windows NT 3.1 开始流已存在。当在非 NTFS 卷(如 Windows 98 计算机的磁盘分区)下读取文件内容时,只能访问一个数据流。因此,您会觉得它是该文件真正的且“唯一”的内容。这样的主流没有名称,并且是非 NTFS 文件系统可以处理的唯一一个流。但是当在 NTFS 卷上创建文件时,事情可能不一样。
cmd下:
[创建]
echo This is ADS > test.txt:stream.txt
[打开]
notepad test.txt:stream.txt
[删除]
type test.txt > test.txt.bak
rem type 命令不能支持ADS,所以用来备份载体。
del test.txt
rem 删除载体及ADS
ren testtxt.bak test.txt
rem 恢复载体文件
Ps:今天才来学习这些东西,的确太晚了,还要在别人的机器上玩玩。
补充:编程实现需要ZwQueryInformationFile函数当然NtQueryInformationFile也是一样的,不过某牛人说过不用API才叼~
MS的说法:
在 NTFS 文件系统下,每个文件都可以有多个数据流。值得一提的是,流不是 NTFS 2000 的功能,但是从 Windows NT 3.1 开始流已存在。当在非 NTFS 卷(如 Windows 98 计算机的磁盘分区)下读取文件内容时,只能访问一个数据流。因此,您会觉得它是该文件真正的且“唯一”的内容。这样的主流没有名称,并且是非 NTFS 文件系统可以处理的唯一一个流。但是当在 NTFS 卷上创建文件时,事情可能不一样。
cmd下:
[创建]
echo This is ADS > test.txt:stream.txt
[打开]
notepad test.txt:stream.txt
[删除]
type test.txt > test.txt.bak
rem type 命令不能支持ADS,所以用来备份载体。
del test.txt
rem 删除载体及ADS
ren testtxt.bak test.txt
rem 恢复载体文件
Ps:今天才来学习这些东西,的确太晚了,还要在别人的机器上玩玩。
补充:编程实现需要ZwQueryInformationFile函数当然NtQueryInformationFile也是一样的,不过某牛人说过不用API才叼~
评论: 0 | 引用: 0 | 查看次数: -
发表评论