只是一些背景知识。我是Windows的长期工作人员,还是C#开发人员,并且为我的雇主准备了一个新项目,我不得不过渡到OSX并开始学习iOS开发。换句话说,对于Mac / OSX环境,我还是很陌生。
今天早些时候,我决定退出XCode并重新组织我的测试和学习项目,以及在XCode中创建的项目,其中包含我很可能需要重用的资产。当我备份XCode时,我很惊讶地看到我所有的最新项目仍在“最近”列表中,并且它们都指向新文件的位置!甜的!
XCode如何知道我的项目在哪里?是操作系统,文件系统的功能,还是XCode在系统中内置了某种形式的智能来检测这些类型的问题?
几乎每个应用程序的File»Open Latest菜单都可以通过便利方法提供的功能来使用此功能LaunchServices/LSSharedFilesList.h
(例如,这也是plist
存储此信息的文件的名称~/Library/Preferences/com.apple.Preview.LSSharedFilesList.plist
)。
这些条目包含一个序列化的NSData
(大概),您可以使用例如十六进制编辑器将其复制并写入文件。它们包含文件的完整路径,文件所在的卷名,UUID以及一些我目前无法理解的其他信息。我假定如果需要,可以使用UUID来解析文件引用。
NSURL
可以将s转换为文件引用,即使文件已移动,也可以稍后对其进行解析。有关StackOverflow的此答案具有更多的技术信息。
我不确定,但是HFS +具有可唯一标识文件的inode。NSURL功能可能在此之上实现。可以观察到的行为似乎表明了这一点:如果将文件移动到其他文件系统,则该文件将从“打开最近的文件”列表中删除,这可能是因为无法再对其进行解析。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句