枚举外部驱动器

Asa*_*vid 7 c++ java filesystems drivers

在java中,您可以使用它File.listRoots()来获取系统中的所有驱动器.

我希望只获得外部驱动器,即USB驱动器,外部硬盘,光驱,软盘等.

有没有办法在java中做到这一点?如果没有,原生C++代码也会很好.在这种情况下,我需要Windows和Linux代码.

Zak*_*aki 12

要获取文件系统信息,请使用以下内容:

import java.io.*;
import javax.swing.filechooser.*;

public class DriveTypeInfo
{
  public static void main(String[] args)
  {
      System.out.println("File system roots returned by   FileSystemView.getFileSystemView():");
      FileSystemView fsv = FileSystemView.getFileSystemView();
      File[] roots = fsv.getRoots();
      for (int i = 0; i < roots.length; i++)
      {
        System.out.println("Root: " + roots[i]);
      }

      System.out.println("Home directory: " + fsv.getHomeDirectory());

      System.out.println("File system roots returned by File.listRoots():");

      File[] f = File.listRoots();
      for (int i = 0; i < f.length; i++)
      {
        System.out.println("Drive: " + f[i]);
        System.out.println("Display name: " + fsv.getSystemDisplayName(f[i]));
        System.out.println("Is drive: " + fsv.isDrive(f[i]));
        System.out.println("Is floppy: " + fsv.isFloppyDrive(f[i]));
        System.out.println("Readable: " + f[i].canRead());
        System.out.println("Writable: " + f[i].canWrite());
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

另见这个,这个这个问题.


Chr*_*son 0

您可以使用 WMI 或查看

获取原始输入设备列表()

获取原始输入设备信息()

这应该可以帮助你开始

C++

http://cboard.cprogramming.com/windows-programming/114294-getting-list-usb-devices-listed-system.html

爪哇

http://forums.java.net/jive/thread.jspa?threadID=37942