7

Javaでは、を使用File.listRoots()してシステム内のすべてのドライブを取得できます。

USBドライブ、外付けハードディスク、光学ドライブ、フロッピーなどの外付けドライブのみを入手したいと考えています。

Javaでそれを行う方法はありますか?そうでない場合は、ネイティブC++コードも適しています。その場合、WindowsとLinuxの両方のコードが必要です。

4

2 に答える 2

13

ファイル システム情報を取得するには、次のようなものを使用します。

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

thisthis、および thisの質問も参照してください。

于 2010-06-05T13:47:57.050 に答える
0

WMIを使用するか、調べることができます

GetRawInputDeviceList()

GetRawInputDeviceInfo()

これで始められるはずです

C++

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

ジャワ

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

于 2010-06-05T13:40:04.527 に答える