iOS 对比两个文件内容是否相同 MD5摘要 与 直接比较



直接比较两个文件的内容

    NSString *path = [[NSBundle mainBundle] bundlePath];

    NSString *filePath1 = [path stringByAppendingPathComponent:@"3-g.txt"];

    NSString *filePath2 = [path stringByAppendingPathComponent:@"4-g.txt"];

//    NSString* pathfilePath1 = [[NSBundle mainBundle] pathForResource:@"3-g" ofType:@"txt"];

//    -(BOOL)contentsEqualAtPath:path andPath:path2  



MD5摘要比较


NSString *md5str1 = [self md5WithFilePath:filePath1];

NSString *md5str2 = [self md5WithFilePath:filePath2];

if ([md5str1 isEqualToString:md5str2])


- (NSString *)md5WithFilePath:(NSString *)path {

    

    NSFileHandle *handle = [NSFileHandle fileHandleForReadingAtPath:path];

    if( handle== nil ) {

        return nil;

    }

    CC_MD5_CTX md5;

    CC_MD5_Init(&md5);

    BOOL done = NO;

    while(!done)

    {

        NSData* fileData = [handle readDataOfLength: 256 ];

        CC_MD5_Update(&md5, [fileData bytes], (CC_LONG)[fileData length]);

        if( [fileData length] == 0 ) done = YES;

    }

    unsigned char digest[CC_MD5_DIGEST_LENGTH];

    CC_MD5_Final(digest, &md5);

    NSString* s = [NSString stringWithFormat: @"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",

                   digest[0], digest[1],

                   digest[2], digest[3],

                   digest[4], digest[5],

                   digest[6], digest[7],

                   digest[8], digest[9],

                   digest[10], digest[11],

                   digest[12], digest[13],

                   digest[14], digest[15]];

    return s;

}





你可能感兴趣的:(IOS,OC,iOS,ios开发,md5,nsstring)