A cópia do código é a seguinte:
pacote org.load.u;
importar java.io.file;
importar java.util.linkedhashmap;
importar java.util.map;
// Detecção de unidade USB
classe pública checku {
// Status do disco de armazenamento
mapa estático privado <string, boolean> map = new LinkedHashmap <string, boolean> ();
// define disco
String final estática privada [] arr = new String [] {"C", "D", "E", "F", "G", "H", "I", "J"};
public static void main (string [] args) {
init ();
verificar();
System.out.println ("u disco detectado");
System.out.println (map);
}
// loop mortal para detectar o status de cada disco
public static void check () {
Arquivo de arquivo;
para(;;) {
para (string str: arr) {
arquivo = novo arquivo (str + ": //");
// se o disco existir agora e não existir antes
// isso significa que a unidade USB acabou de ser conectada e retorna
if (file.exists () &&! map.get (str)) {
retornar;
}
// Toda vez que o estado muda, o estado salvo precisa ser atualizado
// Se o status apenas detectado for diferente do estado original, o status será atualizado
// você deve colocar o exposto se a declaração abaixo
if (file.exists ()! = map.get (str)) {
map.put (str, file.exists ());
}
}
tentar {
Thread.sleep (5 * 1000);
} catch (interruptedException e) {
E.PrintStackTrace ();
}
}
}
// Inicializa o status do disco, existe true, caso contrário, falsa
public static void init () {
Arquivo de arquivo;
para (string str: arr) {
arquivo = novo arquivo (str + ": //");
map.put (str, file.exists ());
}
}
}