c# - 在 C# 中在几秒钟内创建一个巨大的虚拟文件

标签 c# file-io

我想在几秒钟内创建一个巨大的虚拟文件,比如 1~2 GB。 这是我用 C# 编写的内容:

file.writeallbytes("filename",new byte[a huge number]);

另一种指示状态的方式如下:

long FSS = din.TotalFreeSpace;
long segments = FSS / 10000;
long last_seg = FSS % 10000;
BinaryWriter br = new BinaryWriter(fs);

for (long i = 0; i < segments; i++)
{
    br.Write(new byte[10000]);

    this.label2.Text = "segments write :" + i.ToString() + "\r\n" + "segments remain :" + ((segments-i)+1).ToString();
    Application.DoEvents();
}
br.Write(new byte[last_seg]);
this.label2.Text += "\r\nDone!";
br.Close();

其中 din 是磁盘信息对象

使用这两种方法,编写这么大但虚拟的文件大约需要 2 分钟或更长时间。还有其他更快的方法吗?

最佳答案

简单地创建文件,寻找一个合适的大偏移量,然后写入一个字节:

FileStream fs = new FileStream(@"c:\tmp\huge_dummy_file", FileMode.CreateNew);
fs.Seek(2048L * 1024 * 1024, SeekOrigin.Begin);
fs.WriteByte(0);
fs.Close();

这将产生一个 2GB 的文件,其内容基本上是不可预测的,这对您的目的来说应该没问题。

关于c# - 在 C# 中在几秒钟内创建一个巨大的虚拟文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1881050/

相关文章:

mysql select into csv转义换行错误

java - 将根文件夹设置为索引

java - 缓冲文本写入文件

c# - log4net logger wrapper 的实现和使用

c# - 如何将已解析的实例从控制反转传递给应用程序中的类?

c# - 键盘加速器在 UWP 应用中停止工作

c# - 无法将 blob 从一个存储帐户复制到另一个存储帐户

c++ - 如何找到我的进程在 Linux 中打开的文件句柄?

python - 读取 .txt 文件中的数据(不包括页眉和页脚)

c# - 使用 POCO 延迟加载的存储库模式