2010-03-23 84 views
0

当我写数据(53MB)到文档目录,数据是不是我直接通过应用程序支持path.i编码这样写检查,文件目录问题?

- (BOOL)writeApplicationData:(NSData *)data toFile:(NSString *)fileName 
{ 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
if (!documentsDirectory) { 
    NSLog(@"Documents directory not found!"); 
    return NO; 
} 
NSString *appFile = [documentsDirectory stringByAppendingPathComponent:fileName]; 
return ([data writeToFile:appFile atomically:YES]); 

} 它工作正常,但是当我阅读数据使用follwing代码,数据为空,anyhelp请问?

- (NSData *)applicationDataFromFile:(NSString *)fileName { 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *appFile = [documentsDirectory stringByAppendingPathComponent:fileName]; 
NSData *myData = [[[NSData alloc] initWithContentsOfFile:appFile] autorelease]; 
return myData; 

}

回答

1

的代码为我工作(上一个小的下载)。

有些想法,你是否通过网络下载53MB?也许你想在它完成之前阅读它?上写入文件中的“原子”标志说:

如果是,将数据写入到备份文件,然后,假设发生,在没有错误的备份文件重命名为通过路径指定的名称;否则,数据直接写入路径。

如果您以异步方式下载并且无法使用部分结果,则可能需要等待它完成。否则,您可以自动设置:NO并读取部分结果。