说明:向一个目录(如SourceDir)里快速写入文件(1000张/分钟),同时,另一个进程的应用程序将文件移动到局域网的另一台机子上按文件创建的年、月、日时间分别存储,现在的问题是,当目录里的文件数量积压过大(超过1000)时,移动文件会很慢,不知道为什么。 我的操作方法是:用一个FileSystemWatcher对象监视目录SourceDir,当该目录生成一个新文件时,加入集合,当文件数达到200时,触发一个事件,然后执行一个异步委托方法去执行移动文件的任务,如此反复。现在的问题是,文件移动的速度慢于文件生成的速度,当文件积压时,移动的速度更慢,以至我的程序中显示的任务数越来越多,哪位有更好的办法,能让速度得到优化,我这里先谢谢各位热心朋友了!
1.文件生成的速度不受我控制的。
2.生成的文件都在一个目录里,不知道如何“要先查找到目标文件”?
用FileStream从文件中载入到缓存中(byte[]),删除文件,然后用将缓存写入流中用FileStream在局域网中创建一个新文件,但是又有新的问题,老是提示说"指定的网络名不再可用",可局域网没有问题啊,不知道是不是因为传输文件太多的原因,郁闷!
{
string files = Directory.GetFiles(...);
if(files.Length == 0) break; foreach(string name in files)
{
if(File.Exists(name)) 移动文件
}
}