服务需要打扫每个月前上个月的文件夹。 一开始写方法,递归删除,自制数据的测试没有问题。
publicstaticvoiddeletedir (string Dirpath ) filefile=newfile ) dirpath ); if(file.isfile () ) {file.delete; } else { file [ ] files=file.list files (; if(files==null ) {file.delete; (else ) for ) intI=0; i files.length; I ) ) delete dir (files [ I ].getabsolutepath ); }file.delete (; }}经过测试后,虽然运行了很长时间还没有结束,但发现此文件下的文件有数百万个。 这样循环到delete太晚了,所以切换到了调用shell脚本的方法。
外壳如下所示。
#! /留胡子的运动鞋/bash echo ' executing $ {0} ' if [ $ #-lt1 ]; thenecho ' pleasegivethefileorfoldertodelete ' exit-1fi # del _ dir=$ {1} if [! - e $ { del _ dir } ] thenecho ' $ { del _ dir } not exist ' exit-2 firm-RF $ { del _ dir } if [ $? -ne0 ) ThenEcho'Delete${del_dir}fail!' exit1fiecho ' delete $ { del _ dir } success!' exit 0