我有一个USB大容量存储设备,我使用 TrueCrypt 进行加密。当我将其连接到Windows时,它要求格式化。正如预期的那样,使用TrueCrypt会显示其内容。
如何读取该设备的前100个字节?
我知道字节没有意义,因为它们是加密的,但我想读取它们以创建校验和。
答案 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