Ipad 解密250MB PDF文件
我的X代码项目中有一个250Mb的加密PDF文件,我需要在运行时解密并显示它。由于文件太大,我无法解密。因此,我将原始文件拆分为NSData块,并将它们加密为不同的部分文件。在代码中,我解密这些多个块并将它们写入同一个文件中,然后显示它Ipad 解密250MB PDF文件,ipad,Ipad,我的X代码项目中有一个250Mb的加密PDF文件,我需要在运行时解密并显示它。由于文件太大,我无法解密。因此,我将原始文件拆分为NSData块,并将它们加密为不同的部分文件。在代码中,我解密这些多个块并将它们写入同一个文件中,然后显示它 NSData *decryptedData = [[NSData alloc] init]; NSString *thepath = [NSString stringWithFormat:@"%@/decryptedfile.%@",[paths o
NSData *decryptedData = [[NSData alloc] init];
NSString *thepath = [NSString stringWithFormat:@"%@/decryptedfile.%@",[paths objectAtIndex:0], fileType];
[decryptedData writeToFile:thepath atomically:YES];
[decryptedData release];
NSFileHandle *myFile = [NSFileHandle fileHandleForUpdatingAtPath:thepath];
[myFile truncateFileAtOffset:0];
for (int k=1; k<50; k++) { //i had 49 parts, hence the condition
NSString *partFilePath = [NSString stringWithFormat:@"%@/%@-part%d.pdf",[paths objectAtIndex:0], [fileName objectAtIndex:i], k];
NSData *tempDData = [[NSData alloc] initWithContentsOfFile:partFilePath];
[myFile writeData:[tempDData AES256DecryptWithKey:@"secretkey"]];
[tempDData release];
}
[myFile closeFile];
NSData*decryptedData=[[NSData alloc]init];
NSString*路径=[NSString stringWithFormat:@“%@/decryptedfile.%@”,[paths objectAtIndex:0],文件类型];
[解密数据写入文件:原子路径:是];
[解密数据发布];
NSFileHandle*myFile=[nsfilehandlefilehandle用于更新路径:路径];
[myFile TruncateFileLeatOffset:0];
对于(intk=1;k尝试调用
[myFile synchronizeFile];
在每次迭代中,这会刷新缓冲区。如果这不起作用,我想你需要在基础下面,并且需要在BSD级别直接使用未缓冲的IO。没有同步的运气。我将尝试你建议的替代方法,但是我想首先我会尝试看看我是否可以缩小我的文件大小。谢谢输入。