我有一个文件,随着时间的推移,有gb的数据写入它(一旦到达结束就循环)。我想提前创建文件并预置存储,以便在写入文件期间,所需的存储永远不会被其他下载占用。这是在c#中使用visual studio 2012完成的。
I have try:
if (fileSizeRequirement or fileName is changed) //if filePath or file size is changed
{
//Open or create the file, set the file to size requirement, close the filestream
fileStream = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.ReadWrite);
fileStream.SetLength((long)fileSizeRequirement);
fileStream.Close();
}
1)这是一个适当的方式来"预分配"空间的文件夹?2)设置长度后,SetLength是否需要寻遍开始位置,或者文件夹中的位置是否停留在开始位置?3)如何正确实现存储空间的文件预分配?
使用SetLength
是一种常见的方法,尽管我在这里通常使用using
语句。
using(var fileStream = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.ReadWrite))
{
fileStream.SetLength((long)fileSizeRequirement);
}
在SetLength
之后直接调用fileStream.Position
会得到0
,所以你不需要从头开始查找