gpt4 book ai didi

cocoa - NSFileModificationDate 在 SMB 挂载上未正确设置

转载 作者:行者123 更新时间:2023-12-03 17:52:44 25 4
gpt4 key购买 nike

我使用NSFileManager setAttribute设置文件的修改日期。

一切正常,但当我有时以不确定的方式在某些 SMB 磁盘上执行此操作时,日期不会更改。

为简单起见,下面显示的代码不会检查错误,但在实际代码中,所有 API 调用都会返回成功,因此无法理解到底什么不起作用

我所做的是

  • 将文件(和子目录)从源文件夹复制到目标文件夹
  • 目标文件夹是 SMB 磁盘
  • 复制后,我设置复制文件的修改日期(我仅更改不关心目录的文件的修改日期)
  • 有些文件已正确更新,但有些文件未正确更新(并不总是相同)!!!!!!
  • 不同的smb磁盘有不同的结果(例如winxp挂载、buffalo)
  • 我的代码在单独的线程内运行

我使用的代码是

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 磁盘上的一切始终正常工作

最佳答案

看起来没有错误。所以问题似乎出在文件系统驱动程序或服务器端。我不知道你是否可以查看服务器上的日志。无论如何,这似乎超出了你的控制范围。要么忍受这种行为,要么在尝试设置属性值后尝试检查属性值,如果不是您尝试设置的值,请​​重试(最多达到某些重试限制)。

关于cocoa - NSFileModificationDate 在 SMB 挂载上未正确设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21202363/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com