2015-11-09 47 views
0

我正在啓動一個需要跟蹤外部硬盤驅動器的程序。
我正在尋找最好的方式來唯一標識一臺計算機上的硬盤驅動器(包括Windows下的.Net計算機)。在Swift中獲取HDD序列號

我看着得到的UUID,但這似乎是跨計算機不同。 我希望能夠獲得印在驅動器上的製造商序列號,但我不知道如何使用Swift來做到這一點,如果這甚至是可能的話。

額外的好處,如果我也可以把這綁定到檢測何時裝入新的硬盤,而不是DVD。

+0

你的意思是類似[這個工具](http://apple.stackexchange.com/questions/135565/how-do-i-get-detailed-smart-disk-information-on-os-x-mavericks - 或更高版本)?它是開源的,所以你可以在那裏挖掘。 – tadman

+0

有趣的信息在這裏:http://stackoverflow.com/a/2021812/2227743 – Moritz

+0

@tadman嗯,是的,這很有趣...很多挖掘 – AndyD273

回答

2

注意NSFileManager有這個方法

mountedVolumeURLsIncludingResourceValuesForKeys(_:options:) 

,並在選項,你可以指定NSURLVolumeIdentifierKey。這是一個臨時標識符(在重新啓動時不一致),但它是唯一的,您將能夠以這種方式監視新添加或彈出的卷。

我確定還有另一個關鍵是告訴你關於文件系統的類型和其他屬性,讓你確定它是否是DVD。

從上述方法的文檔中,鏈接到Common File System Resource Keys

也許像

let attributes = try manager.attributesOfFileSystemForPath("/") 

也可能會有所幫助。特別是,NSFileSystemNumber似乎也是一個獨特的數字。

+0

嗯...這是一種重要的是,我發現一致的關鍵,這樣我就可以在我的電腦上獲得鑰匙,卸下鑰匙,拿到另一臺電腦上,插上鑰匙並拿到鑰匙。 – AndyD273