C ++比较2个文件夹中的文件

时间:2011-04-01 14:54:51

标签: c++

我正在为两个文件夹的内容生成哈希值。然后我想比较所有哈希值,一次一个文件夹a到文件夹b的所有内容。

如果他们在每个文件中都有相同的文件,那么我计划在文件夹B中有大约500个文件,在文件夹A中可能有5-10个文件。我在分钟使用的循环如下:

for (i=0;i<nbfiles1;i++)
{
    printf("file1: %s\n", files1[i]);
    for (j=0;j<nbfiles2;j++)
    {
        printf("    file2: %s\n", files2[j]);
        cs=ph_audio_distance_ber(hashes[i],lens[i],hashes2[j],lens2[j],threshold,block_size,Nc);
        double max_f = 0.0;
        for (index=0;index<Nc;index++)
        {
            if (cs[index] > max_f)
                max_f = cs[index];
        }//end if
        printf("    cs = %f\n", max_f);
    }//end for
}//end for

其中nbfiles1是文件夹A中的文件数 和nbfiles 2是文件夹B中的文件数

如果每个文件中有相同数量的文件,但是如果存在不相等的数字,则循环工作正常。我知道答案正在盯着我看,但是看了3个小时之后我就不知道我哪里出错了。

1 个答案:

答案 0 :(得分:1)

当您没有内存或尝试分配无效大小时,会引发std :: bad_alloc异常。 检查代码完成内存分配的代码,如果找不到,请向我们展示。