如何快速比较2个目录的不同.
zolen 2004-12-15 07:30:50 电脑里"C:\A" "D:\B" 2个目录(含子目录),原先这2个目录的结构内容完全一样.但是A目录的内容经常有变化(比如增删改文件/文件夹).如何写个程序才能让B目录也能跟A目录结构内容保持一致.(并不要求同步操作.)只要求手动操作这个程序的时候,能通过与A目录进行比较后来保持一致. 比较目录结构,文件的修改时间和大小.
收集整个目录的结构和内容到是很快.比如目录(含子目录)6000多个文件(夹),把这些文件(夹)的路径名字+修改时间+文件大小字节数全部收集起来,只需要 2秒就搞定. 但是怎么比较这2个目录的结构内容的差异才快速呢??
我的做法: 把A目录里的内容收集完毕后存放到一个数组里(保护路径文件名+修改时间+文件字节数),然后用B目录里的内容去与数组里的内容一一比较,发现不同的就先删除掉,发现相同的内容时从原来收集的A目录的数组里删除掉那个相应的值.等全部比较完毕后,再从那个已经删除掉相同值的数组里依次拷贝文件和目录到B目录下.这样就能做到目录保持一致了.
但这样做,我觉得有些别扭,有没有更好更快的方法呢??毕竟如果文件(夹)太多了以后(50000个以上),这样做速度还是不快的.
另外请教一下,我现在删除数组里的某个值,只是用赋予空值的方法,数组的下界并没有改变.有什么不影响速度的前提下,真正删除数组内某个值(数组下界跟着变),而不是象我现在用赋予空值的方法呢?