我有一个文件夹ABC,里面有10个不同文件名的rar文件。
但是这个文件中有2个文件是一样的,但是文件名不一样。
我怎么样才能把它找出来?(用程序实现)
我现在是通过程序获得文件的大来判断,那要怎么样来实现比较出这个同样大小的文件呢?
各位大侠们有更好的办法~我应该把问题说清楚了吧:)
在这里先谢谢大家~

解决方案 »

  1.   

    比较文件的md5值。
    参考如下:http://www.newasp.net/tech/net/12813.html
      

  2.   

    个人觉得分两步来1.首先比较大小,因为如果文件很大,算文件的md5值可能需要很长时间,所以,先判断文件大小,如果大小不一样,那肯定不一样,这样的都淘汰掉。代码如下:
    FileInfo fileinfo_A = new FileInfo("a文件的路径");
    FileInfo fileinfo_B = new FileInfo("b文件的路径");if (fileinfo_A.Length == fileinfo_B.Length)//
    { }2.在此基础上用1楼的朋友http://www.newasp.net/tech/net/12813.html这个链接中的方法计算文件的md5,相同则两个文件完全一致。   
       
     
        
    =========================================
    ◆◆◆【易销网】www.ezshopi.com◆◆◆
    TaobaoAnalyzer.淘宝分析家-淘宝热销商品分析专家
    =========================================
      
      

  3.   

    二楼应该是个不错的方法,文件大小比较不太准确吧?至少应该做流数据的DATA比较吧
      

  4.   

    定义一个数组,存放每个文件大小,比如是long fileSize[9]for(int i =0;i<fileSize.length-1 ;i++)
    {
       for(int j = i+1;j<fileSize.length;j++)
       {
           if(fileSize[i] == fileSize[j])
           {}//比较大小并记录即可
            j++;
       }
    }
      

  5.   

    每个文件都算出md5值,比较md5值,值相等的,就判断为两个相同的文件。
    至于二楼所说的,先比较大小,这一步当然是必不可少的。首先可以把体积没有重复的文件排除掉。
    三楼所说的比较流数据,是最准确的办法,但是速度较慢。另外,md5的比较不是100%准确,但是出错的概率很小。另外还可以考虑使用CRC32算法,当也不是100%准确。只是在效率上远远超出一个一个字节的比较。
      

  6.   

    4楼和5楼,你们应该看一下1楼的链接http://www.newasp.net/tech/net/12813.html再评论。
    别人是做了整个文件的md5运算。
    foreach (byte b in md5byte)
    {
    }
    所以这种方法只要没有王小云的问题,就基本可以算是相同的两个文件