创建文件并在写入之前分配存储空间



我有一个文件,随着时间的推移,有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,所以你不需要从头开始查找

相关内容

  • 没有找到相关文章

最新更新