相关疑难解决方法(0)

使用c#删除大量(> 100K)文件,同时保持Web应用程序的性能?

我试图从一个位置删除大量文件(大的意思是超过100000),从而从网页启动操作.显然我可以使用

string[] files = System.IO.Directory.GetFiles("path with files to delete");
foreach (var file in files) {
    IO.File.Delete(file);
}
Run Code Online (Sandbox Code Playgroud)

Directory.GetFiles http://msdn.microsoft.com/en-us/library/wz42302f.aspx

此方法已经发布了几次: 如何删除目录中的所有文件和文件夹?从目录中删除的文件,如果文件名包含某个词

但是这个方法的问题在于,如果你说了十万个文件就会成为一个性能问题,因为它必须首先生成所有的文件路径然后再循环它们.

如果网页正在等待执行此操作的方法的响应,则添加到此处,您可以想象它看起来有点垃圾!

我有一个想法是在一个不合时宜的Web服务调用中将它包装起来,当它完成时它会激活对网页的响应,说它们已被删除了吗?也许将删除方法放在一个单独的线程中?或者甚至可以使用单独的批处理来执行删除?

在尝试计算目录中的文件数时,我遇到了类似的问题 - 如果它包含大量文件.

我想知道这是否有点矫枉过正?即有一个更简单的方法来处理这个?任何帮助,将不胜感激.

c# file-io file-management

15
推荐指数
1
解决办法
7463
查看次数

标签 统计

c# ×1

file-io ×1

file-management ×1