我编写了这个程序,但无法获得输出,每次运行此程序时,我都会得到唯一的NSlog
语句。我创建了我在此路径和内容的文件。
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
@autoreleasepool
{
NSString *fName = @"/Users/sahil/Documents/newfile/commands";
NSFileManager * fm;
NSDictionary *attr;
fm=[NSFileManager defaultManager];
if ([fm fileExistsAtPath: fName]== NO)
{
NSLog(@"file not exist");
return 1;
}
if ([fm copyItemAtPath:fName toPath:@"newfile1" error:NULL] == NULL)
{
NSLog(@"file copy failed");
return 2;
}
if ([fm contentsEqualAtPath:fName andPath:@"newfile1"]==NO)
{
NSLog(@"files are not =");
return 3;
}
if ([fm moveItemAtPath:@"newfile1" toPath:@"newfile2" error:NULL]== NULL)
{
NSLog(@"file rename fail");
return 4;
}
if ((attr=[fm attributesOfItemAtPath:@"newfile2" error:NULL])==nil)
{
NSLog(@"couldnt get file attributes");
return 5;
}
NSLog(@"file size is %llu bytes",[[attr objectForKey:NSFileSize] unsignedLongLongValue]);
if ([fm removeItemAtPath:fName error:NULL] == NULL)
{
NSLog(@"file removal failed");
return 6;
}
NSLog(@"all ops were successful");
NSLog(@"%@",[NSString stringWithContentsOfFile:@"newfile2" encoding:NSUTF8StringEncoding error:NULL]);
}
return 0;
}
请帮我解决这个问题。 感谢
答案 0 :(得分:0)
OP代码:
if ([fm fileExistsAtPath: fName]== NO)
{
NSLog(@"file not exist");
return 1;
}
如果NSLog
打印,将返回,因此程序中将不再执行。
删除return 1;
声明。
这假设“我得到了唯一的第一个NSlog声明。”表示声明:NSLog(@"file not exist");
执行。
OP代码:
if ([fm copyItemAtPath:fName toPath:@"newfile1" error:NULL] == NULL)
{
NSLog(@"file copy failed");
return 2;
}
添加错误记录:
NSError *error;
if ([fm copyItemAtPath:fName toPath:@"newfile1" error:&error] == NULL)
{
NSLog(@"file copy failed, error: %@", error);
return 2;
}