Java呼叫Windows內cmd命令
阿新 • • 發佈:2019-01-23
很多情況下,在Windows進行操作時,直接使用cmd命令提示符會遠比通過Java實現簡便的多,所以我們可以通過使用Java呼叫cmd命令的方式來完成這一操作。
Java的Runtime.getRuntime().exec(commandStr)方法提供了呼叫執行cmd指令的實現。
cmd /c
dir 是執行完dir命令後關閉命令視窗。
cmd /k dir 是執行完dir命令後不關閉命令視窗。
cmd /c start dir 會開啟一個新視窗後執行dir指令,原視窗會關閉。
cmd /k start dir 會開啟一個新視窗後執行dir指令,原視窗不會關閉。
當我們需要刪除一個資料夾下所有的檔案時,File類裡的刪除方法delete()不能刪除非空的資料夾,必須通過一定的邏輯程式碼遍歷目錄下所有的檔案刪除,比較繁瑣,而使用cmd命令,只需要一行就可以實現了。
注:/s代表刪除所有子目錄及子目錄下檔案,/q代表刪除時不需再次確認,/** * @Title: deleteAllFiles * @Description: 將目錄下全部檔案刪除 * @param path: 目錄路徑(path = "D:\\Test\\Download\\") * @return * @throws Exception */ public void deleteAllFiles(String path){ try { String cmd = "cmd /c del /s/q "+path+"\\*.*"; Runtime.getRuntime().exec(cmd).waitFor(); } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } }
移動操作
先執行了一遍複製命令,再刪除原檔案/** * @Title: moveAllFiles * @Description: 將原目錄下全部檔案複製到目標目錄,並刪除原檔案 * @param originpath: 原目錄路徑 * @param targetpath: 目標目錄路徑 * @return * @throws Exception */ public void moveAllFiles(String originpath,String targetpath){ try { String cmd = "cmd /c copy " + originpath + "\\* " + targetpath + "\\"; Runtime.getRuntime().exec(cmd).waitFor(); } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } try { String cmd = "cmd /c del /s/q "+originpath+"\\*.*"; Runtime.getRuntime().exec(cmd).waitFor(); } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } }
這兩個例子幫助大家理解應用的方法,凡是cmd的命令都可以如此呼叫,是不是覺得方便了很多,希望這篇文章對你有幫助。