找出 USB 连接来自哪个端口

本文关键字:USB 连接 找出 | 更新日期: 2023-09-27 17:56:10

我需要有一个程序来检测插入了哪些USB端口闪存驱动器。我可以找到某个驱动器是否已连接,但找不到它的位置。

例如,当驱动器 1 连接到 USB 端口 1 时,我需要能够说驱动器 1 连接到端口 1。无论如何都可以在Java,C#,c ++,c或任何其他语言中执行此操作。我对任何这些语言都很满意。

这是我对Java的了解。这告诉我驱动器 D 或驱动器 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 连接来自哪个端口

看起来 usb4java 可以做你想做的事。查看高级API,特别是USBDevice#getParentPort()方法。

下面是一些示例代码,可帮助您入门。