Enumerate external drives

前端 未结 2 822
萌比男神i
萌比男神i 2020-12-19 06:25

In java, you can use File.listRoots() to get all drives in the system.

I\'m looking to get only the external drives, i.e. USB drives, external hard disk

相关标签:
2条回答
  • 2020-12-19 06:43

    To get file system info, use something like:

    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());
          }
       }
    }
    

    Also see this, this and this question.

    0 讨论(0)
  • 2020-12-19 06:51

    You could use WMI or look into

    GetRawInputDeviceList()

    GetRawInputDeviceInfo()

    This should get you started

    C++

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

    Java

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

    0 讨论(0)
提交回复
热议问题