关于文件遍历的问题。

chuanbao622 2004-12-29 01:09:48
工作中需要定期把服务器上的数据刻盘保存,而且要尽量按文件路径备份,例如一个文件是:D:\A\B\1.doc,则刻到盘上应该是H:\A\B\1.doc。所以我想做一个程序,把一次备份后新增加的文件找出来,因为原文件的位置不能轻易改动,所以把找出的文件按原来的路径复制到一个临时目录下例如E:\MyBack\A\B\1.doc,刻盘的时候就直接刻E:\MyBack下的东西就可以了。最初是遍历选择的盘符或文件夹,将创建时间为上次备份时间以后的文件列出来,但是遇到2个问题:第一,虽然文件不会轻易从一个文件夹移动到另一个文件夹,但是有把某个分区下的所有文件全部移动到另一个分区的情况,这样,所有文件的创建时间都会改变,从而无法判断哪些是新创建的文件;第二,遍历并且判断花的时间太长,特别是文件很多例如9000个,等得让人难受。像BeyondCompare这样的软件对2个目录进行比较,即使文件比较多,也是比较快的。有没有更好的方法来实现呢?

不知道我说清楚没有,晕了!
...全文
128 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
chuanbao622 2005-01-11
  • 打赏
  • 举报
回复
谢谢各位。
caiso 2004-12-30
  • 打赏
  • 举报
回复
up楼上的,有意思,呵呵~1
kuki84 2004-12-30
  • 打赏
  • 举报
回复
一、优化对比算法,先排序,得到原/现两个文件名队列,然后指针指队首,一同后移比较。或用其他算法,反正你的算法值得优化。
二、找些偷机取巧的办法,如把原/现文件名存入数据库,用数据库/sql来判断多出来的东西,人家搞数据库原理的干这个绝对专业。
三、如果前两个都不想用,那就典型的多线程解决了,不会太难,效果也会很有提升。
四、接分。
g961681 2004-12-30
  • 打赏
  • 举报
回复
sc
Blakhawk 2004-12-30
  • 打赏
  • 举报
回复
实时探测指定目录。
myhgyp 2004-12-29
  • 打赏
  • 举报
回复
没说清楚
chuanbao622 2004-12-29
  • 打赏
  • 举报
回复
可不可以解释得再详细一点
chuanbao622 2004-12-29
  • 打赏
  • 举报
回复
对头,就是这个样子的
北光 2004-12-29
  • 打赏
  • 举报
回复
想高级的做法话,就钻研文件目录是怎样保存的,直接读取保存文件目录数据库。
Frank.WU 2004-12-29
  • 打赏
  • 举报
回复
我理解问题应该是这样:
比较设置好的两个目录,如果源目录有文件更新,则把 更新/新 增加按照目录层次提取出来,供备份使用(刻录)。
是不?
我也想知道不用偏历如果做?

5,928

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧