如何创建一个大小为1G的空文件

来源:百度知道 编辑:UC知道 时间:2024/05/21 12:52:14
各位朋友,请教一个问题哈。我经常看见BT下载软件或者迅雷下载软件可以预先创建一个空文档,而且文档大小是和下载的东西大小一样。
所以我一直相知道其中的道理,希望各位不吝赐教哈。

创建内容为空的任意大小文件:

运行cmd打开命令行界面,然后切换到相应目录,比如说,d:\temp_folder,那么输入D:回车,然后输入cd temp_folder,当前路径变成d:\temp_folder。

  然后输入fsutil file createnew testfile.txt 50000000,就会在当前文件夹创建一个名称为testfile.txt的文件,大小为50000000个字节,即47.6M大小。文件会瞬间生成,因为实际上Windows只是分配了名称、地址和空间给该文件,并没有读写任何文件内容,所以很快,跟删除文件同理。

  如果你要创建一个100M的文件,那么文件大小应该是1024 X 1024 X 100,fsutil命令最后一段就用这个公式计算得的结果,如果是1G大小的文件,那么就是1024 X 1024 X 1024 X 1。

  运行cmd打开命令行界面,然后切换到相应目录,比如说,d:\temp_folder,那么输入D:回车,然后输入cd temp_folder,当前路径变成d:\temp_folder。
  然后输入fsutil file createnew testfile.txt 50000000,就会在当前文件夹创建一个名称为testfile.txt的文件,大小为50000000个字节,即47.6M大小。文件会瞬间生成,因为实际上Windows只是分配了名称、地址和空间给该文件,并没有读写任何文件内容,所以很快,跟删除文件同理。
  如果你要创建一个100M的文件,那么文件大小应该是1024 X 1024 X 100,fsutil命令最后一段就用这个公式计算得的结果,如果是1G大小的文件,那么就是1024 X 1024 X 1024 X 1。

其实这个问题的实现是这样的:

我们知道c或者c++以及vc打开文件都需要一个文件指针,

文件指针移到文件的末尾所显示的就是文件的大小,所以

我们在创建文件的时候,就可是可以使用seek函数把文件指针移到

我们要求大小的地方。