我试过了:
检查FSCatalogInfo
nodeFlags
是否kFSNodeForkOpenBit
已设置(使用kFSNodeForkOpenMask
).
检查创建者代码是否在kFirstMagicBusyFiletype
和之间kLastMagicBusyFiletype
.
检查ExtendedFileInfo
extendedFinderFlags
是否kExtendedFlagObjectIsBusy
已设置.
GetFileInfo -ab
从shell 运行.
所有这些都报告Finder正在复制的文件未打开.
使用lsof
确实检测到文件是打开的,但是(a)我不想lsof
从我的应用程序调用,(b)我的理解是它依赖于私有API,所以查看它的源代码无济于事.
你现在已经晚了2年左右,但我想为了后来发现这个的人,我注意到你可以查看文件的创建日期.在复制时,Finder将其设置为kMagicBusyCreationDate(1946-02-14 08:34:56 +0000).