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

Posted

技术标签:

【中文标题】使用 .NET 时如何限制文件碎片?【英文标题】:How can I limit file fragmentation while working with .NET? 【发布时间】:2010-10-29 08:58:04 【问题描述】:

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

【问题讨论】:

技术细节:32 位 Server 2003,16GB 输出文件大小,每个集群 4K,每个输入文件几 MB,观察到 30K 片段。 【参考方案1】:

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

【讨论】:

【参考方案2】:

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

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

【讨论】:

以上是关于使用 .NET 时如何限制文件碎片?的主要内容,如果未能解决你的问题,请参考以下文章

如何限制对文件系统(ASP.NET Web 应用程序目录)中文件的访问?

.net Core 2.0 文件上传大小限制

使用 POST 向 ASP.NET Core 传递数据时的长度限制与解决方案

netcoreASP.NET Core中如何更改文件上传大小限制maxAllowedContentLength属性值

在 Asp.net 中运行外部可执行文件的内存限制

netcoreASP.NET Core中如何更改文件上传大小限制maxAllowedContentLength属性值