防止缓冲区文件过大的最佳方法?
Best way to prevent oversized Buffer File?
我想删除一个缓冲区文件,该文件由比例尺中的值填充。
到目前为止,这是我的代码。但它会在达到定义的文件大小时删除整个文件。
if(File.ReadAllBytes("buffer1").Length >= 50)
{
File.Delete("buffer1");
}
我确信有更好的方法。无需删除整个文件并将 las 值保留在其中。但是怎么办?
希望有人能帮忙。
如果要从文件中删除前几个值,最好的方法是将其余值复制到第二个文件。然后你可以用新文件覆盖原来的文件。这是一些示例代码。
const string yourfile = "buffer1";
const string tempfile = "buffer1edit.bin";
System.IO.FileInfo fi = new System.IO.FileInfo(yourfile);
if (fi.Length > 50)
{
using (System.IO.FileStream originalfile = System.IO.File.Open(yourfile, System.IO.FileMode.Open),
newfile = System.IO.File.Open(tempfile, System.IO.FileMode.CreateNew))
{
originalfile.Seek(50, System.IO.SeekOrigin.Begin);
originalfile.CopyTo(newfile);
}
System.IO.File.Delete(yourfile);
System.IO.File.Move(tempfile, yourfile);
}
我想删除一个缓冲区文件,该文件由比例尺中的值填充。 到目前为止,这是我的代码。但它会在达到定义的文件大小时删除整个文件。
if(File.ReadAllBytes("buffer1").Length >= 50)
{
File.Delete("buffer1");
}
我确信有更好的方法。无需删除整个文件并将 las 值保留在其中。但是怎么办? 希望有人能帮忙。
如果要从文件中删除前几个值,最好的方法是将其余值复制到第二个文件。然后你可以用新文件覆盖原来的文件。这是一些示例代码。
const string yourfile = "buffer1";
const string tempfile = "buffer1edit.bin";
System.IO.FileInfo fi = new System.IO.FileInfo(yourfile);
if (fi.Length > 50)
{
using (System.IO.FileStream originalfile = System.IO.File.Open(yourfile, System.IO.FileMode.Open),
newfile = System.IO.File.Open(tempfile, System.IO.FileMode.CreateNew))
{
originalfile.Seek(50, System.IO.SeekOrigin.Begin);
originalfile.CopyTo(newfile);
}
System.IO.File.Delete(yourfile);
System.IO.File.Move(tempfile, yourfile);
}