我正在使用Visual Studio Team System 2008,C#,.NET 3.5,IIS 7.0和ASP.NET。我也在使用Silverlight 3.0。我想在客户端读取USB闪存盘的内容,使用USB闪存盘中的信息作为用户配置文件标识符 - 就像在线银行服务使用USB密钥存储客户端证书一样(但我的安全要求不高。)
如何读取Web应用程序(客户端)中USB闪存盘中特定文件的内容?我们可以在Silverlight中执行此操作(如果不能,可以使用任何其他解决方案来读取USB闪存盘内容)吗?
BTW:我想自动阅读内容,我不希望用户手动选择USB闪存盘上的特定文件进行阅读。
答案 0 :(得分:7)
您无法在Silverlight中执行此操作。您可以在用户的计算机上读取文件,但不能在没有用户干预的情况下读取。 Silverlight内置的安全模型不允许使用它。
您可以做的最好的事情是读取用户指定的文件,让他们用a浏览它 文件打开对话框。
如果您在本地使用控制台/ Windows窗体/ WPF应用程序,则可以访问USB /闪存驱动器。您可以使用DriveInfo
类找到驱动器,然后迭代它们或使用LINQ查询来查找要访问的驱动器。有关详细信息,请参阅Stack Overflow问题“How to find USB drive letter?”。获得路径后,可以在其中搜索所需的文件。您不需要特殊的API或库,Windows操作系统将USB驱动器视为普通驱动器,与连接到系统的“永久”HDD相同,并且将在该级别为您完成所有脏工作。只需使用.NET I / O类。但是,如果您希望以不依赖于任何操作系统的独立方式访问驱动器,则应使用第三方库。
答案 1 :(得分:1)
我不认为你所要求的是可能的。如果 IS 可能,这是可怕的东西......允许网站在没有用户干预的情况下抓取东西?嗯,嗯。没办法。\
编辑 - 阅读评论后添加
仅使用标准框架,没有。 USB支持不是标准配置。您认为在USB端口的System.IO命名空间中会有类似COM端口的类,但没有这样的运气。但是,有一些库可以处理这个问题。这里有一些链接可以帮助您入门。
http://weblogs.asp.net/israelio/archive/2005/08/15/422637.aspx