我的目录中包含日期格式名称的文件夹。
我有一个代码来删除格式不是日期格式的文件夹。它工作但抛出异常。
我的代码是:
DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");
Date dat=new Date();
String direct="D:\\tempm\\Sample\\"+dateFormat.format(dat);
String dirPath="D:\\tempm\\Sample\\";
File filePath=new File(direct);
if(!filePath.exists())
{
filePath.mkdir();
System.out.println("folder created");
}
File dirDel=new File(dirPath);
for(File fileDel:dirDel.listFiles())
{
System.out.println("files inside???"+fileDel.getName());
Date d2 = null;
try {
dateFormat.setLenient(true);
d2 = dateFormat.parse(fileDel.getName()); //throwing exception here
System.out.println("the result is "+d2);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(d2==null)
{
fileDel.delete();
}
}
错误消息是
java.text.ParseException: Unparseable date: "New folder"
at java.text.DateFormat.parse(Unknown Source)
at ext.gt.test.DateMod.main(DateMod.java:31)
我的代码正在运行,但我需要解决该异常。是否有其他方法可以执行此检查?最好在没有正则表达式的情况下检查dateformat。
答案 0 :(得分:3)
我建议使用正则表达式检查文件夹是否为“日期”文件夹。您不应该使用异常来控制应用程序的常规流程。这被认为是不好的做法,因为它更难以遵循实际的逻辑并发现用于“例外”(因此名称......)的案例的代码。
这个想法在这里进一步讨论:Why not use exceptions as regular flow of control?