序列号
09standy225aaabdCdjDgDABBfaahFaagbaaaEaahFaaeAaadaaafhaacAaacfaadBaahaaaahaaaeaaeFaadhaafcaafhaacdaafiaacDaahdaahaaahh
http://hub.pactera.com/Login.aspx
java题:
输入:
1:文件路径:String类型,指定的目标文件路径,
2:排序方法:boolean类型,true代表正序,False代表倒序,用以确定是保留早期的文件或者最近的文件(依赖于文件命名)
3:文件删除方式:char类型,保留文件遵照的方式:D(或d)代表按日期保留,N(或n)代表按文件数量保留
4:最大可保留数量:int类型,如果sDelType输入的类型为N/n,则表示为需要保留的文件夹个数;如果sDelType输入的类型为D/d,则表示需要保留的符合某几种日期形式种类的所有文件
5:匹配关键字:String类型,特征关键字,用于匹配识别该文件是否应被删除:匹配则不删除,不匹配则删除
输出:
打印出需处理路径下的所有文件名称清单,同时打印出删除的所有文件清单,以及删除后保留的文件清单。
要求:
1:使用Java语言进行开发,以命令行形式作为输入形式。
2:需严格按照编程规范进行代码编写,需有异常处理机制,有错误需打印错误日志,可自行定义错误码类别。
如:文件删除失败,提示“Error 111:deletefile Exception:e.getMessage()“
用户键入信息出错,如路径不存在,提示“Error101:file ‘d:\\helloworld’ doesn’t exist“
3:目标路径下文件命名统一按照格式(格式为:YYYY-MM-DD,如20121022)命名
//所有对象
private static HashMap<String,String> allObj = new HashMap<String,String>();
//要删除的对象
private static HashMap<String,String> removeObj = new HashMap<String,String>();
//要保留的对象
private static HashMap<String,String> remainObj = new HashMap<String,String>();
/**
* 实现文件名排序
* @param mode:true代表正序,False代表倒序
* @param directoryPath 指定的目标文件路径
* @param keyWord 过滤关键字
*/
public static void FileSort(final boolean mode, String directoryPath, String keyWord)
{
List<File> files = Arrays.asList(new File(directoryPath).listFiles());
Collections.sort(files, new Comparator<File>()
{
@Override
public int compare(File o1, File o2)
{
if (o1.getName().compareTo(o2.getName()) > 0)
{
if (!mode) //升序
return -1;
return 1;
}
else if (o1.getName().compareTo(o2.getName()) < 0)
{
if (mode) //升序
return -1;
return 1;
}
else
return 0;
//return o1.getName().compareTo(o2.getName());
}
});
for (File f : files)
{
if (f.getName().indexOf(keyWord)!=-1)
{
remainObj.put(f.getName(), f.getAbsolutePath());
}else {
allObj.put(f.getName(),f.getAbsolutePath());
}
System.out.println(f.getName());
}
}
/**
* 根据路径删除指定的目录或文件
* @param directoryPath 要删除的目录或文件
* @return 删除成功返回 true,否则返回 false。
*/
public static boolean DeleteFile(String directoryPath)
{
File f = new File(directoryPath);
if (f.exists())
{
if (f.isFile())
return f.delete();
else if (f.isDirectory())
{
File[] files = f.listFiles();
for (File file : files)
{
if (!DeleteFile(file.getAbsolutePath()))
return false;
}
return f.delete();
}
else
return false;
}
else
{
System.out.println("Error101:the path or the file \"" + directoryPath + "\" doesn’t exist");
return false;
}
}
/**
* 保留文件夹
* @param way 保留方式
* @param maxNum 最大保留个数
* @param allObj 所有对象
*/
public static void RemainObj(char way, int maxNum, List<String> allObj)
{
String way_temp = String.valueOf(way).toLowerCase();
if (way_temp == "d")
{
}
else if (way_temp == "n")
{
}
else
{
}
}
/**
* 验证输入
* @param args 输入参数字符串数组
* @return 输入有误返回false,输入无误返回true
*/
public static boolean ValidateInput(String[] args)
{
File f = new File(args[0]);
if (!f.exists())
{
return false;
}
else if (args[1].toLowerCase() != "true" || args[1].toLowerCase() != "false")
{
return false;
}
else if (args[2].toLowerCase() != "d" || args[1].toLowerCase() != "n")
{
return false;
}
else
{
return true;
}
}
public static void main(String[] args)
{
// if (ValidateInput(args))
// {
// FileSort(true, "C:\\Users\\muye\\Desktop\\javatest","aa");
// for (int i = 0; i < allObj.size(); i++)
// {
// if (i > 1)
// {
// HelloWorld.DeleteFile(allObj.get(i));
// System.out.println(allObj.get(i));
// }
// }
// }
FileSort(false, "C:\\Users\\muye\\Desktop\\javatest","aa");
}