Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在写入文件之前创建文件并分配存储_C#_Filestream - Fatal编程技术网

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

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

我有一个文件,随着时间的推移,它会获得写入它的GBs数据(一旦到达末尾就会循环)。我希望提前创建文件并预设存储空间,以便在写入文件期间,所需的存储空间不会被其他下载占用。这是使用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(var fileStream = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.ReadWrite))
{
    fileStream.SetLength((long)fileSizeRequirement);
}

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

谢谢键盘p。这些信息将让我专注于在代码的其他地方查找错误。