U盤發(fā)現(xiàn)器
packagecom.lx.io;importjava.io.File;importjava.io.IOException;importjava.util.ArrayList;importjava.util.Arrays;publicclassUSBreadFile{/**? ? * 更多資料歡迎瀏覽凱哥學(xué)堂官網(wǎng):http://kaige123.com? ? *@author小沫? ? */publicstaticvoidUSB(){File[] files = File.listRoots();//列出當(dāng)前所有盤符//準(zhǔn)備好集合,把所有盤符數(shù)據(jù)添加進(jìn)去ArrayList f1 =newArrayList<>();ArrayList f2 =newArrayList<>();longsum;// 盤符總大小longsurplus;// 盤符剩余大小longuse;// 盤符已使用大小while(true) {File[] newfiles = File.listRoots();//獲得到新盤符if(newfiles.length > files.length) {//如果新的盤符大于原來(lái)盤符//用Arrays工具把數(shù)組轉(zhuǎn)換成集合在添加進(jìn)集合f1.addAll(Arrays.asList(files));f2.addAll(Arrays.asList(newfiles));f2.removeAll(f1);//在f2和f1里面找到相同的數(shù)據(jù)進(jìn)行刪除掉for(File file : f2) {try{char[] c = file.getPath().toCharArray();//把路徑拆分成字符System.out.print("插入:"+ c[0] +" 盤");sum = file.getTotalSpace() /1024/1024/1024;surplus = file.getUsableSpace() /1024/1024/1024;use = sum - surplus;//列出每個(gè)盤符的信息System.out.println(c[0] +"盤總大小:"+ sum +"G"+" 剩余:"+ surplus +"G"+" 已用:"+ use +"G");//用Runtime方法打開插入進(jìn)去的U盤Runtime.getRuntime().exec("cmd /c start "+ file.getPath());}catch(IOException e) {e.printStackTrace();}}files = newfiles;//更新盤符}elseif(newfiles.length < files.length) {//如果新的盤符小于了原來(lái)的盤符//說(shuō)明U盤已經(jīng)拔出System.out.println("U盤已拔出");files = newfiles;}}}publicstaticvoidmain(String[] args){USB();}}