读取USB大容量存储设备的字节

时间:2014-01-23 23:15:28

标签: c# encryption truecrypt

我有一个USB大容量存储设备,我使用 TrueCrypt 进行加密。当我将其连接到Windows时,它要求格式化。正如预期的那样,使用TrueCrypt会显示其内容。

enter image description here

如何读取该设备的前100个字节?

我知道字节没有意义,因为它们是加密的,但我想读取它们以创建校验和。

2 个答案:

答案 0 :(得分:2)

这是否在我的头顶。但是应该有用。

 public static long getBytes(string letter)
    {
        ManagementObject disk = new ManagementObject(String.Format("win32_logicaldisk.deviceid=\"{0}:\"", letter));
        disk.Get(); 
        return long.Parse(disk["Size"].ToString());
    }

编辑:测试它并将int更改为long。它有效。

答案 1 :(得分:1)

到目前为止,您考虑过哪些解决方案?您的应用程序是否确定何时插入或拔出USB设备?

据我所知,.Net中没有原生支持直接访问USB设备。我不得不使用LibUsbDotNet(http://sourceforge.net/projects/libusbdotnet/)或SharpUSBLib(http://www.icsharpcode.net/OpenSource/SharpUSBLib/等库。在样本,文档等方面都有利弊。我相信你能找到合适的东西。你最好的。

在一个案例中,我能够使用WMDC连接到设备,一旦建立连接,我就使用OpenNETCF RAPI库来读取/写入设备。

这是我在编写需要与USB设备(条形码扫描器)交互的应用程序时发现的另一个优秀资源。 http://www.developerfusion.com/article/84338/making-usb-c-friendly/

在Stackoverflow上对类似问题进行了很好的资源讨论:Working with USB devices in .NET