【发布时间】:2011-11-06 14:50:55
【问题描述】:
我在一个目录中有大约 500 个文本文件,每个文件的文件名中都有相同的前缀,例如:dailyReport_。
文件的后半部分是文件的日期。 (例如dailyReport_08262011.txt、dailyReport_08232011.txt)
我想使用 Java 过程删除这些文件。 (我可以使用一个 shell 脚本并在 crontab 中添加一个作业,但该应用程序是供外行使用的)。
我可以使用以下方法删除单个文件:
try{
File f=new File("dailyReport_08232011.txt");
f.delete();
}
catch(Exception e){
System.out.println(e);
}
但是我可以删除具有特定前缀的文件吗? (例如第 8 个月的 dailyReport08)我可以使用 rm -rf dailyReport08*.txt 在 shell 脚本中轻松做到这一点。
但是File f=new File("dailyReport_08*.txt"); 在 Java 中不起作用(如预期的那样)。
现在在 Java 中是否可以在不运行循环的情况下搜索目录中的文件?
我可以使用一些类似于 shell 脚本中* 的特殊字符来实现这一点吗?
【问题讨论】:
-
循环有什么问题?
-
我也有同感……为什么不循环呢?
-
我知道它可能使用循环......但正如我所说,我可能有大量文件(500 只是一个数字)......所以如果可能的话,不要使用循环其他方式,比如 shell 脚本,我觉得会更好......
-
@S.M.09:所以你想在输入上做一些事情。听起来你需要一个循环。再说一遍:为什么你不想要一个循环?你觉得它有点慢吗?提示:即使是 shell 在某些时候也需要循环,你只是没有看到那个循环。
-
如果您喜欢 shell,this question 的答案可能会有所帮助。