现在做一程序,要求是检查出是否插了U盘。这种程序怎么做啊?我只做出来了查找文件或文件夹是否存在。 我一开始是想,直接查找本机的最后1个盘,但是考虑一下后,如果他没插U盘,那找的就不是U盘,而是他本机上的最后1个盘了。
请教大家啊。怎么做呢?怎么样可以判断插了U盘呢?U盘会有什么特性呢?
谢谢大家帮我想想啊

解决方案 »

  1.   

    需要用到API。。
    你查一下相关资料
      

  2.   

    [DllImport("kernel32.dll", CharSet = CharSet.Auto)]
    private static extern int GetDriveType(string driveinfo);private enum DriveType
    {
    NotExist = 1,
    FloppyOrUsb = 2,
    FixedDisk = 3,
    NetDisk= 4,
    CDRom= 5,
    RAMDisk= 6
    }public bool IsUSBDisk(string driveInfo)
    {
    if(driveInfo==null || driveInfo== "")
    return false;
    if(GetDriveType(driveInfo) == (int)DriveType.FloppyOrUsb){
    return true;
    }else{
    return false;
    }
    }利用API
      

  3.   

    看到你的消息想给你回复一下,但是看到 lovefootball(蟑螂) 兄先来了,我就不重复写了:)
    就是先得到机器所有的盘,然后使用API来得来驱动器的类型.
      

  4.   

    也可以用WMI来做。http://www.microsoft.com/china/technet/community/scriptcenter/resources/hey0315.mspx这里是用脚本来做,不过也可以很容易的改成C#代码。
      

  5.   

    API 怎么用啊 我不太明白哦。本人还是菜鸟一只,望大家多多帮忙
    怎么样用API得到驱动器的类型? 我现在只能把驱动器都找出来 但不知道怎么区别那个是U盘
      

  6.   

    [DllImport("kernel32.dll", CharSet = CharSet.Auto)]
    上面代码中的这句是所以意思啊?
    是不是要先引用一个什么东西啊?
      

  7.   

    谢谢大家了, 我把上面的原码稍稍改了会就可以用了。谢谢啊。
    补充:上面 还差一句:using System.Runtime.InteropServices;
    呵呵 再次谢谢大家了
    加我QQ吧 以后还要请教大家哦