Узнайте, с какого порта идет USB-соединение

0

Мне нужна программа, которая обнаруживает, какие USB-накопители USB-портов подключены. Я могу найти, связан ли какой-то диск или нет, но не там, где он есть.

Например, когда Drive 1 подключается к USB-порту 1, я должен иметь возможность сказать "Привод 1", подключенный к порту 1. В любом случае, это нужно делать в Java, С#, c++, c или любом другом языке. Мне нравится любой из этих языков.

Вот что я имел с Java. Это говорит мне, когда Drive D или Drive F подключен, но не в каком порту. Заранее благодарю за любую помощь.

public class FindDrive
{

public static void main(String[] args)
{
String[] letters = new String[]{ "A", "B", "C", "D", "E", "F", "G", "H", "I"};
File[] drives = new File[letters.length];
boolean[] isDrive = new boolean[letters.length];

// init the file objects and the initial drive state
for ( int i = 0; i < letters.length; ++i )
    {
    drives[i] = new File(letters[i]+":/");

    isDrive[i] = drives[i].canRead();
    }

 System.out.println("FindDrive: waiting for devices...");

 // loop indefinitely
 while(true)
    {
    // check each drive 
    for ( int i = 0; i < letters.length; ++i )
        {
        boolean pluggedIn = drives[i].canRead();

        // if the state has changed output a message
        if ( pluggedIn != isDrive[i] )
            {
            if ( pluggedIn )
                System.out.println("Drive "+letters[i]+" has been plugged in");
            else
                System.out.println("Drive "+letters[i]+" has been unplugged");

            isDrive[i] = pluggedIn;
            }
        }

    // wait before looping
    try { Thread.sleep(100); }
    catch (InterruptedException e) { /* do nothing */ }

    }
}
}

Если бы я был недостаточно ясен, пожалуйста, дайте мне знать. Мне действительно нужно найти решение этого.

Теги:
usb

1 ответ

1

Похоже, usb4java может делать то, что вы хотите. Посмотрите на API высокого уровня, в частности на метод USBDevice # getParentPort().

Вот пример кода, чтобы вы начали.

  • 0
    Спасибо! Посмотрим
  • 0
    Похоже у меня такая же проблема. Мне нужно знать, с какого физического порта идет соединение.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню