我想在几秒钟内创建一个巨大的虚拟文件,比如 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/