0

我正在使用下面的代码来计算我在应用程序包的“临时”文件夹中添加的文件的校验和。与所有较低的 iOS 版本相比,我在 iOS11.2 中得到不同的校验和值。我想知道这些版本之间发生了什么变化?iOS 11.2 中文件系统的一些变化是造成差异的原因吗?有人可以阐明这个问题或面临类似的问题吗?下面是我使用的一段代码。

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

NSLog(@"bundleRootDir  %@ ",bundleRootDir );

NSString *tmpDir = [bundleRootDir stringByAppendingPathComponent:@"temp"];

NSLog(@"tmpDir  %@ ",tmpDir);

NSFileManager *fileManager1=[[NSFileManager alloc] init];

NSDirectoryEnumerator *dirEnum = [fileManager1 enumeratorAtPath:tmpDir];

// NSFileManager *fileManager1 = [NSFileManager defaultManager];
//NSArray *filePathsArray1 = [fileManager1 subpathsOfDirectoryAtPath:tmpDir  error:nil];

NSMutableData *allFilesData1 = [NSMutableData new];

uLong crc1 = crc32(0L, Z_NULL, 0);

NSInteger filecount1=0;

//for (NSString *file1 in filePathsArray1) {

NSString *file1;

while ((file1 = [dirEnum nextObject])) {

    NSString *fullPathToFile1 = [tmpDir stringByAppendingPathComponent:file1];

    BOOL isDirectory1;

    if ([fileManager1 fileExistsAtPath:fullPathToFile1 isDirectory:&isDirectory1] && isDirectory1 ) {

        // ignore directories...
        continue;
    }
   else {

        NSData *myData1 = [NSData dataWithContentsOfFile:fullPathToFile1];

        [allFilesData1 appendData:myData1];

        NSLog(@"Checksum files included %@ , %d",fullPathToFile1,filecount1);
    }
    filecount1++;
}

NSLog(@"Checksum cal : length of data %lu",[allFilesData1 length]);

NSString *strData = [[NSString alloc]initWithData:allFilesData1 encoding:NSUTF8StringEncoding];

NSLog(@"All Data for checksum %@",strData);

crc1 = crc32(crc, [allFilesData1 bytes], [allFilesData1 length]);

NSLog(@"WL_INIT_PACKAGE - testWebResourcesChecksum crc32 output %lu",crc1);

NSString *checksum1 = [NSString stringWithFormat:@"%lu", crc1];

NSLog(@"WL_INIT_PACKAGE - testWebResourcesChecksum crc32 output %@",checksum1);                           
4

0 回答 0