使用 .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 应用程序目录)中文件的访问?
使用 POST 向 ASP.NET Core 传递数据时的长度限制与解决方案