我试图从一个位置删除大量文件(大的意思是超过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服务调用中将它包装起来,当它完成时它会激活对网页的响应,说它们已被删除了吗?也许将删除方法放在一个单独的线程中?或者甚至可以使用单独的批处理来执行删除?
在尝试计算目录中的文件数时,我遇到了类似的问题 - 如果它包含大量文件.
我想知道这是否有点矫枉过正?即有一个更简单的方法来处理这个?任何帮助,将不胜感激.