obj c中的filemanager

时间:2011-03-24 11:52:29

标签: iphone objective-c nsfilemanager

在我的iPhone应用程序中我正在使用文件管理器来检查文件的大小,代码在模拟器上工作正常,但是当我在iphone上运行相同的应用程序时,即使文件大小大于零,也说文件大小为零,我使用以下代码:

NSArray *paths1 = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory1 = [paths1 objectAtIndex:0];
documentsDirectory1 = [documentsDirectory1 stringByAppendingPathComponent:@"XML"];
NSString * szDestPath1 = [documentsDirectory1 stringByAppendingPathComponent:@"Extras"];
NSString *URL2 = [szDestPath1 stringByAppendingPathComponent:@"config.xml"];


NSLog(@"%@",URL2);
NSError *attributesError = nil;
NSDictionary *fileAttributes = [[NSFileManager defaultManager] attributesOfItemAtPath:URL2 error:&attributesError];

int _fileSize = [fileAttributes fileSize];

NSLog(@"_fileSize:%U",_fileSize); //0 if empty

我怎样才能解决这个问题,任何人都可以帮助我吗?提前完成。

1 个答案:

答案 0 :(得分:1)

您确定该文件存在吗?

通常,如果涉及文件的一段代码在模拟器上工作正常,但在设备上却没有,这是因为文件名错误。大多数模拟器运行在不区分大小写的文件系统上,但该设备具有区分大小写的文件系统。

因此,如果您使用正确的文件路径,请再次检查。

您可以添加类似的内容以确保该文件存在:

if (![[NSFileManager defaultManager] fileExistsAtPath:URL2]) {
    NSLog(@"File does not exist");
}