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

各位朋友,请教一个问题哈。我经常看见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。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-05-25
  运行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。
第2个回答  推荐于2017-09-30
其实这个问题的实现是这样的:

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

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

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

我们要求大小的地方。

例子:

#include<stdio.h>

void main()
{
FILE *fp;

fp=fopen("data.dat","w+");

fseek(fp, 10000L,SEEK_END);

putw(0,fp);

fclose(fp);

}

我们只要改变fseek的第二个参数就可以改变文件的大小,比如你讲

的1G,你可以试一试!本回答被提问者采纳
第3个回答  2006-09-04
一般计算机中的文件其实就是二进制流,换句话说就是一长传0和1,BT生成用空文件占位其实就是生成一长传全部是0或1的二进制码,这种文件仅用来占位对其他程序没有任何用处也不包含信息所以才称为“空文件”并非真是“空”的。
要生成这样的文件也不难,用C或者C++开一个文件,然后写入一堆0或1甚至随机01都可以,文件大小就是由这一串01的长度决定的。