Cocoa NSFileManager是否将元数据(如修改日期)与文件一起复制?
不推荐使用的方法的文档说明: 文件或目录属性(即所有者和组号、文件权限和修改日期等元数据)也会被复制Cocoa NSFileManager是否将元数据(如修改日期)与文件一起复制?,cocoa,nsfilemanager,Cocoa,Nsfilemanager,不推荐使用的方法的文档说明: 文件或目录属性(即所有者和组号、文件权限和修改日期等元数据)也会被复制 或的文件中没有说明这一点。但这些方法也是如此吗?如果我有一个文件foo/bar.txt,修改日期是一小时前,我把它复制到baz/bar.txt,然后我用baz/bar.txt得到修改日期,是现在还是一小时前?我用这个代码测试了这个: NSString *documentsPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
或的文件中没有说明这一点。但这些方法也是如此吗?如果我有一个文件
foo/bar.txt
,修改日期是一小时前,我把它复制到baz/bar.txt
,然后我用baz/bar.txt
得到修改日期,是现在还是一小时前?我用这个代码测试了这个:
NSString *documentsPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;
NSString *firstPath = [documentsPath stringByAppendingPathComponent:@"test1.dat"];
NSData *data = [@"Foobar Test" dataUsingEncoding:NSUTF8StringEncoding];
[data writeToFile:firstPath atomically:YES];
NSDate *firstModDate = (NSDate *)[[[NSFileManager defaultManager] attributesOfItemAtPath:firstPath error:nil] objectForKey:NSFileModificationDate];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(10 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
NSString *secondPath = [documentsPath stringByAppendingPathComponent:@"test2.dat"];
[[NSFileManager defaultManager] copyItemAtPath:firstPath toPath:secondPath error:nil];
NSDate *secondDate = (NSDate *)[[[NSFileManager defaultManager] attributesOfItemAtPath:secondPath error:nil] objectForKey:NSFileModificationDate];
NSLog(@"Original date: %.2f", firstModDate.timeIntervalSince1970);
NSLog(@"New date: %.2f", secondDate.timeIntervalSince1970);
});
它会记录两次相同的日期。因此,它确实保留了修改日期元数据。使用iOS 13.3进行测试