C# 在写入文件之前创建文件并分配存储
我有一个文件,随着时间的推移,它会获得写入它的GBs数据(一旦到达末尾就会循环)。我希望提前创建文件并预设存储空间,以便在写入文件期间,所需的存储空间不会被其他下载占用。这是使用C#中的visual studio 2012完成的 我试过:C# 在写入文件之前创建文件并分配存储,c#,filestream,C#,Filestream,我有一个文件,随着时间的推移,它会获得写入它的GBs数据(一旦到达末尾就会循环)。我希望提前创建文件并预设存储空间,以便在写入文件期间,所需的存储空间不会被其他下载占用。这是使用C#中的visual studio 2012完成的 我试过: if (fileSizeRequirement or fileName is changed) //if filePath or file size is changed { //Open or create
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(var fileStream = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.ReadWrite))
{
fileStream.SetLength((long)fileSizeRequirement);
}
在SetLength
之后直接调用fileStream.Position
将产生0
,因此您不需要从头开始。谢谢键盘p。这些信息将让我专注于在代码的其他地方查找错误。