我要执行Runtime.getRuntime().exec(rm /cson/New/*.*)
但是执行不成功,如果执行Runtime.getRuntime().exec(rm /cson/New/a.txt)就能成功,命令不识别*号吗?该怎么办啊?我New下面好几千个文件,不可能一个一个删吧?
但是执行不成功,如果执行Runtime.getRuntime().exec(rm /cson/New/a.txt)就能成功,命令不识别*号吗?该怎么办啊?我New下面好几千个文件,不可能一个一个删吧?
就用Java的API,File.listFiles().然后递归删除。
不清楚为什么。
我上次做了一个用C调用shell的功能,
也是实现删除一个文件夹下所有的文件,
用*是不行的。
最后还是遍历了文件夹下的所有文件,一个一个删除的。
for FILENAME in $(ls -t -r *.xml 2>/dev/null) ; do
if [ -f $FILENAME ] ; then
sudo /bin/rm -f $FILENAME
fi unset FILENAME
done
rm -rf /cson/New/*.*
原因是采用通佩符的话,系统会问你是否需要删除。
在这里,改成Runtime.getRuntime().exec(rm /cson/New/*.* -f)强制删除,不需要询问就可以了。
package com.dos;public class DosTest{
public static void main(String [] args){
try{
Process process=Runtime.getRuntime().exec("p.exe");
process.waitFor();
System.out.println("DOS Sucess");
}catch(Exception e){
e.printStackTrace();
}
}}
Runtime.getRuntime().exec("rm \"/cson/New/*.*\"")