Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.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# 使用.NET时如何限制文件碎片?_C#_.net_File Io_Fragmentation - Fatal编程技术网

C# 使用.NET时如何限制文件碎片?

C# 使用.NET时如何限制文件碎片?,c#,.net,file-io,fragmentation,C#,.net,File Io,Fragmentation,在我的应用程序中,随着时间的推移,我将小数据位收集到一个更大的文件中。结果,目标文件变得过于碎片化。如何使用.NET限制输出文件的碎片?您可以故意增加较大的文件块大小,并在内部监视当前使用结束的位置。这样,系统就有更好的机会为文件分配连续的空间。可靠地减少文件碎片的唯一方法是一次性为整个文件分配空间(用零填充文件的其余部分)。但这只能在您对文件的最终大小有所了解的情况下才能完成 另一种选择是在每次增量期间将文件大小增加一定的值(例如,100 MB)。这样,碎片整理的数据块就会更少。技术细节:32

在我的应用程序中,随着时间的推移,我将小数据位收集到一个更大的文件中。结果,目标文件变得过于碎片化。如何使用.NET限制输出文件的碎片?

您可以故意增加较大的文件块大小,并在内部监视当前使用结束的位置。这样,系统就有更好的机会为文件分配连续的空间。

可靠地减少文件碎片的唯一方法是一次性为整个文件分配空间(用零填充文件的其余部分)。但这只能在您对文件的最终大小有所了解的情况下才能完成


另一种选择是在每次增量期间将文件大小增加一定的值(例如,100 MB)。这样,碎片整理的数据块就会更少。

技术细节:32位Server2003,16GB输出文件大小,每个集群4K,每个输入文件几MB,观察到30K碎片。