很多情况下,在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指令,原窗口不会关闭。
/**
* @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();
}
}
注:/s代表删除所有子目录及子目录下文件,/q代表删除时不需再次确认,
移动操作
/**
* @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();
}
}
先执行了一遍复制命令,再删除原文件