繁体   English   中英

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

[英]creating a file and allocating storage before writing to it

我有一个文件,随着时间的推移会获得写入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)实现存储空间文件预分配的正确方法是什么?

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

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

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

SetLength产生0之后直接调用fileStream.Position ,因此您不需要寻找开头。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM