我使用NSFileManager setAttribute来设置文件的修改日期。
一切正常但当我在某些SMB磁盘上执行此操作时,有时会以非确定性方式更改日期。
为简单起见,下面显示的代码不会检查错误,但在实际代码中,所有API调用都会返回成功,因此无法理解它不起作用
我的工作是
我使用的代码是
NSString* srcPath = @"/Volumes/smbtest/folder-1/ATKXP.INF";
NSString* destPath = @"/Volumes/smbtest/folder-2/ATKXP.INF";
NSDictionary* srcAttrs = [[NSFileManager defaultManager] attributesOfItemAtPath:srcPath
error:nil];
[[NSFileManager defaultManager] copyItemAtPath:srcPath
toPath:destPath
error:nil];
NSDictionary* dateAttrs = [NSDictionary dictionaryWithObjectsAndKeys:
srcAttrs.fileCreationDate, NSFileCreationDate,
srcAttrs.fileModificationDate, NSFileModificationDate,
nil];
[[NSFileManager defaultManager] setAttributes:dateAttrs
ofItemAtPath:destPath
error:nil];
一切都在本地HFS磁盘上正常工作
答案 0 :(得分:1)
看起来不是一个错误。所以问题似乎在文件系统驱动程序或服务器端。我不知道你是否能够查看服务器上的日志。无论如何,它似乎超出了你的控制范围。要么尝试设置它,要么尝试检查属性值,如果它不是您尝试设置的属性值,请再试一次(最多一些重试限制)。