簡體   English   中英

獲取MacOS文件夾/文件ID C#

[英]Getting a MacOS folder/file ID C#

編輯:我剛剛讀到,Microsoft產品在保存時經常刪除並創建一個新文件,因此我們可能需要一種與下面完全不同的解決方案...

我正在編寫一些代碼以在我的應用程序運行時跟蹤Windows和Mac上的文件和文件夾更改,但是如果未運行,它還需要檢測更改。

我可以使用以下信息在Windows上通過獲取文件夾和文件ID來做到這一點:

獲取文件夾ID C#

現在,我需要適用於Mac的解決方案,但是在搜索之后,我有點空白了。 我找不到有關系統范圍文件夾/文件ID的任何信息。 我最接近解決方案的地方是使用某種書簽,該書簽可以如下所述跟蹤文件,但是我還沒有開始:

https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/AccessingFilesandDirectories/AccessingFilesandDirectories.html#//apple_ref/doc/uid/TP40010672-CH3-SW10

似乎我必須將這些書簽存儲為Alias文件,以便在程序啟動時重新調用。

在Mac上使用C#獲取全局文件/文件夾ID是否還有其他選擇?

您可以使用NSFileManager.GetAttributes來獲取文件的“ NSFileManager.GetAttributes節點”(正如Jason的注釋所指出的那樣)

注意:如果跨卷移動inode,當然,如果編輯文件的程序執行delete和recreate而不是replace等操作,則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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM