拆分大文件没有副本?

tik*_*noa 7 c c++ windows delphi winapi

问题: 是否存在Windows API调用(可能仅限NTFS),它允许用户将非常大的文件拆分为许多其他文件而不实际复制任何数据(换句话说,指定连接文件之间的逻辑断点,文件名和大小)?

示例: SetFileValidData,NtSetInformationFile

场景: 我需要以编程方式从非本地驱动器(包括网络,USB和DVD驱动器)分发/复制10GB文件.它由超过100,000个单独文件组成,中值大小约为16千字节,但加入了~2GB块.

但是,使用简单的FileStream api(64kb缓冲区)将文件从非本地驱动器上的块提取到本地硬盘驱动器上的单个文件似乎在我的机器上限制为大约4MB/s,而使用Explorer复制整个块时发生超过80MB/s!

复制整个块似乎是合乎逻辑的,但是给Windows足够的信息来逻辑地分割文件(理论上应该能够非常非常快地发生).

Vista安装不是这样做的吗?

rme*_*dor -1

是否有原因无法调用操作系统的复制例程来进行复制?这应该和资源管理器做同样的事情。它消除了对奇怪的分裂事物的需要,我认为这种事物不存在。