簡體   English   中英

使用磁盤仲裁框架時,是否有可靠的方法知道卷是時間機器卷?

[英]Is there a reliable way to know a volume is a time machine volume when using the disk arbitration framework?

我正在開發OSX應用程序,該應用程序除其他外還顯示已安裝的卷(顯示/消失)。 我使用磁盤仲裁框架來做到這一點。 當我將計算機連接到已配置為時間機器備份的網絡驅動器時,將出現一個名稱為“ timemachine”的卷,即出現的設備的CFDictionary是這樣的:

{DAVolumeMountable = true,DAVolumeNetwork = true,DAVolumeName = timemachine,DAVolumePath = file:// localhost / Volumes / timemachine /,DAVolumeKind = afpfs}

我不希望該卷顯示在應用程序的UI中。 我可以使用什么標准來知道這確實是一個時間機器量,將其排除在外? 僅使用名稱或路徑似乎很奇怪。 從理論上講,格式化為名稱為“ timemachine”的驅動器是否不會安裝在相同的名稱/路徑下?

任何建議表示贊賞。

我找不到識別Time Machine卷的API。 您可以使用destinationinfo動詞調出tmutil程序。 我還可以在Time Machine卷上看到諸如“ .com.apple.timemachine.donotpresent”之類的文件,盡管這依賴於未記錄的實現細節。

順便說一句,用戶仍然可以正常使用Time Machine音量。 至少有一個本地人可以。 他們可以瀏覽到該文件,並在其上備份其他文件。 顯然,他們不應該在驅動器發生故障的情況下放任何東西,以免丟失。

如果只想顯示與Finder中存在的卷相同的卷,則建議使用NSWorkspace及其NSWorkspaceDidMountNotificationNSWorkspaceWillUnmountNotification通知來了解何時安裝和卸載卷。 NSVolumeEnumerationSkipHiddenVolumes一起使用-[NSFileManager mountedVolumeURLsIncludingResourceValuesForKeys:options:] 您可能也想將-getResourceValue:forKey:error:NSURLVolumeIsBrowsableKey一起使用,因為我不確定non-browsable是否與hidden是同義詞。

暫無
暫無

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

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