c# - 获取 MacOS 文件夹/文件 ID C#
问题描述
编辑:我刚读到微软产品在保存时经常删除并创建一个新文件,所以我们可能需要一个与下面完全不同的解决方案......
我正在编写一些代码来在我的应用程序运行时跟踪 Windows 和 Mac 上的文件和文件夹更改,但如果它没有运行,它还需要检测更改。
我可以通过使用以下帖子获取文件夹和文件 ID 在 Windows 上执行此操作:
现在我需要一个适用于 Mac 的解决方案,但搜索后我发现有点空。我找不到任何有关系统范围的文件夹/文件 ID 的信息。我最接近解决方案的是使用某种可以跟踪文件的书签,如下所述,但我还没有开始:
似乎我必须将这些书签存储为别名文件,以便在程序启动备份时调用。
是否有任何其他选项可以使用 C# 在 Mac 上获取全局文件/文件夹 ID?
解决方案
您可以使用NSFileManager.GetAttributes
来获取文件的“inode”(正如 Jason 的评论所指出的那样)
注意:当然,如果跨卷移动,inode 会发生变化,如果编辑文件的程序执行删除和重新创建与替换等...
例子:
var ns = NSFileManager.DefaultManager;
var attribs = ns.GetAttributes("/Users/sushi/Desktop/foo.txt");
Console.WriteLine(attribs.SystemFileNumber);
File.Move("/Users/sushi/Desktop/foo.txt", "/Users/sushi/Desktop/foo2.txt");
var attribs2 = ns.GetAttributes("/Users/sushi/Desktop/foo2.txt");
Console.WriteLine(attribs2.SystemFileNumber);
推荐阅读
- angular - 如果我们没有得到任何响应Angular TypeScript,则在某个时间后超时Web api
- angular - 具有两个不同链接的 Angular i18n
- weka - WEKA分类器输出中的“问号”是什么意思?
- php - 如何正确连接这个 php 字符串
- c++ - 在 C++ 中反转双链表
- prestashop - 如何禁用将哈希添加到缩略图 url
- vue.js - 为什么 v-for 在对象内的对象数组上,即使使用 :key 也不会更新?
- mysql - Visual Studio Code mssql 扩展:SQL Server (mssql) - 无法连接到服务器
- c# - 如何在 VS2019 中调试 asmx Web 服务?VS 不再在 Web 服务的断点处停止
- reactjs - 我必须在 React 中添加登录到导航栏