有没有办法在.NET中唯一标识连接到Windows PC的任何存储介质?

use*_*916 8 .net c# vb.net windows

几周以来,我一直在寻找解决方案.我正在寻找一种可以唯一识别连接到Windows PC的任何存储介质的方法.特别是存储介质.这可能包括内部硬盘驱动器,外部硬盘驱动器,闪存驱动器,SD卡,智能手机存储等.没有光学媒体.

基本上我想要做的是指定某种与特定存储设备相关联的唯一字符串,因此无论驱动器号如何,只要重新连接存储设备,就可以自动检测它.

我遇到的问题:

  • 并非每个存储设备都有序列号
  • 当通过读卡器访问SD卡时,通过WMI通过WMI提供的信息ManagementObjectSearcher与读卡器而不是媒体相关

似乎有4个主要属性可以返回唯一信息,但并不总是如此. SerialNumber,Caption,PNPDeviceID,Signature

当然,Windows必须有一些东西可以跟踪这样的存储设备.有任何想法吗?

Dav*_*rno 2

你可以给这些媒体写信吗?如果是这样,如何在根目录中创建一个包含 GUID 的文件并在应用程序中存储对该 GUID 的引用。作为 GUID 并保证唯一,您可以使用此文件来唯一标识卷。