★米老鼠★的问题之四:关于Copy文件与文件夹?
加入现有A,B两个硬盘,Copy文件,从A-》B,如果B盘同一目录下已经有A要Copy过来的文件,则跳过不Copy,如果A盘的 新于B的,或者是文件大小大于B的,则覆盖,
,Copy到中途可以停止,但是停止后希望能记录Copy的进度,就是说,那些已经Copy过了,那些还没有?(因为比如有A(120G)B(80)C(60)现从A-》B和C,该怎么Copy)
我试过的方法
1:SHFILEOPSTRUCT ,
2:
void __fastcall TForm1::CopyFileToDir(AnsiString Source, AnsiString Target, AnsiString FileExt)
{
TSearchRec sr;
if (FindFirst(Source + FileExt, faArchive, sr) == 0)
{
do
{
CopyFile((Source + sr.Name).c_str(), (Target + sr.Name).c_str(), false);
}
while (FindNext(sr) == 0);
FindClose(sr);
}
}
可是这几个都不能很好的实现我要求的,SHFILEOPSTRUCT 根本就没有办法记录Copy的进度,而第二个,也要现把要Copy的放入数据库,执行起来,要先扫描文件,很慢,看看大家有没有比较好的Copy方法,能满足我的要求的,
先谢谢了!~