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

时间:2014-06-24 18:08:48

标签: c# filestream

我有一个文件,随着时间的推移会获得写入GB的数据(一旦到达结尾就会循环)。我想提前创建文件并预设存储空间,以便在写入文件期间其他下载内容永远不会占用所需的存储空间。这是使用C#中的visual studio 2012完成的。

我试过了:

 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)实现存储空间文件预分配的正确方法是什么?

提前致谢,我感谢任何建议。

1 个答案:

答案 0 :(得分:2)

使用SetLength是一种常见的方法,虽然我一般在这里使用using语句。

using(var fileStream = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.ReadWrite))
{
    fileStream.SetLength((long)fileSizeRequirement);
}

fileStream.Position收到SetLength之后直接致电0,这样您就不需要寻求开始了。