1
我有一个奇怪的问题,从一个文件夹复制到另一个文件夹在同一个驱动器上。为什么复制到特定文件夹慢得多?
如果我复制到特定文件夹PROBLEM_FOLDER复制需要很长时间。
如果我复制到我创建的另一个文件夹作为测试OK_FOLDER复制速度非常快。
我第一次注意到这个问题后,我不小心完全填补了我的C驱动器,并不得不从PROBLEM_FOLDER删除大量的文件。
这里有什么问题?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
namespace TestCopy
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
MoveFiles(@"C:\HOTDATA\DB\TEST", @"C:\PROBLEM_FOLDER\DB");
//MoveFiles(@"C:\HOTDATA\DB\TEST", @"C:\OK_FOLDER\DB");
}
public void MoveFiles(string sourceDir, string targetDir)
{
foreach(var file in Directory.GetFiles(sourceDir,"nEq*-1m*"))
{
string FileName = Path.GetFileName(file);
var targetPath = Path.Combine(targetDir, FileName);
if (File.Exists(targetPath))
{
//File.Delete(targetPath);
}
else
{
File.Move(file, targetPath);
}
}
}
}
}
我不知道如何NTFS(你更可能有)的作品,但我想它与FAT相同的问题处理文件夹的文件夹。文件夹中的文件越多=它变得越慢。 [This](http://serverfault.com/q/98235)证明了这一点。 – Sinatr
尝试使用CCleaner清理您的注册表 – Glubus
在'Problem_Folder'中是否有更多文件?如果是这样,这个代码'File.Exists(targetPath)'将会变慢。你有索引任何文件夹? – christiandev