如何進行文件的比較?
我下載了一個CFindDir類,但是對於其的文件比較的函數不知如何使用,,
我的程式要實現的功能是:下載指定目錄下的文件到目的磁碟,然後進行比較,看是否下載正
確,有沒有什麼比較好的辦法呢?
這個函數能用嗎?其中的tpf參數是指什麼?
BOOL CFindDir::FunCompFileTpf(CString tpf, CString filename)
{
LPTSTR cfn,cfi,lptTemp;
int n;
cfi=tpf.GetBuffer(tpf.GetLength());
cfn=filename.GetBuffer(filename.GetLength());
while(*cfn && *cfi)
{
if(*cfi=='?') {cfi++; cfn++;}
else
if(*cfi=='*')
{
cfi++;
cfn++;
n=0;
while(*cfn)
{
if(*cfn==*cfi)
{
lptTemp=cfn;
n=1;
}
cfn++;
}
if(n==1) cfn=lptTemp;
if((*cfn=='\0')&&(*cfi!='\0')) return FALSE;
}
else
{
if(*cfn != *cfi)return FALSE;
else
{
cfn++; cfi++;
}
}
}
if(*cfn == '\0' && *cfi =='\0') return TRUE;
else return FALSE;
}
還有,CFindDir類好象有點問題,我通過判斷文件大小來進行比較,如果我的目標磁盤上有
許多文件(3G),要找很久,並且它還出錯.其實我拷貝是到目標盤的根目錄下,為什麼它會找
那麼久,而且還出錯呢,但是如果我拷貝在根目錄下的一個子目錄中就不會出錯,真不知為什麼?
dlg->m_Result.SetWindowText("Verifying...");
for(i=0;i<iTotal_File_Counts;i++)
{
my.FunReset();
// my.FunSetDirExt(ComparedFileDirectory,Mp3List[i].strFileName);
my.FunSetDirExt(CopyToDirList[p->array].strCopyToDiskDir,Mp3List[i].strFileName);
my.FunSetSize(TRUE,-1,-1);
if(my.FunFindFile(1))
iDstFileSize+=my.FunGetFindSize();
}
if((iSrcFileSize==iDstFileSize)&&(iSrcFileSize!=0)&&(iDstFileSize!=0))
{
dlg->m_Result.SetTextColor(RGB(0,0,255));
dlg->m_Result.SetWindowText("Verify Successful");
dlg->m_Result.SetWindowText("PASS");
}