我的目录中有大约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);
}
但是我可以删除具有特定前缀的文件(例如:dailyReport08
第8个月)吗,我可以使用轻松在shell脚本中执行此操作rm -rf dailyReport08*.txt
。
但是File f=new File("dailyReport_08*.txt");
在Java中不起作用(如预期的那样)。
现在, 如果不运行循环 来搜索目录中的文件,在Java中 是否有 可能实现?
我可以使用一些类似于*
Shell脚本的特殊字符来实现此目的吗?
不,你不能。Java是相当低级的语言(与shell脚本相比),因此必须更加明确地执行此类操作。您应该使用folder.listFiles(FilenameFilter)搜索带有所需掩码的文件,然后遍历返回的数组以删除每个条目。像这样:
final File folder = ...
final File[] files = folder.listFiles( new FilenameFilter() {
@Override
public boolean accept( final File dir,
final String name ) {
return name.matches( "dailyReport_08.*\\.txt" );
}
} );
for ( final File file : files ) {
if ( !file.delete() ) {
System.err.println( "Can't remove " + file.getAbsolutePath() );
}
}
在我的脚本中,我有一个字符串及其前缀/后缀。我需要从原始字符串中删除前缀/后缀。 例如,假设我有以下值: 如何得到以下结果?
问题内容: 假设我有来自Input的带有名称的字符串(例如:)。如何从输入开始删除称呼? 可能出现的称呼清单是: 任何解决方案或正则表达式声明都可以考虑所有这些称呼? 我尝试了这个: 它正在工作,但是就象名字一样,它正在删除。 问题答案: 您可以使用 参见正则表达式演示 图案细节 -忽略大小写的选项 -字符串开始 -0+空格 - 其次有,,,,或或(可能更长时间后添加这里) -字边界 -0或多个空
问题内容: 我正在为我的计算机科学课程做作业。任务是获取用户输入,删除所有元音,然后打印新语句。 我知道我可以使用以下代码轻松做到这一点: 但是我的老师希望我使用嵌套的if和else if语句来实现结果。现在我正在使用这样的东西: 但是我不确定在和语句中要做什么。我应该删除这封信吗?还是有更好的方法来做到这一点? 鉴于这是我的作业,我不希望完整的答案只是提示。谢谢! 问题答案: Character
问题内容: 尝试删除所有非0-9的字母和字符和一个句点。我正在使用,但它也会删除小数,如何也保留小数? 问题答案: 试试这个代码: 现在将包含。
问题内容: 我需要从字符串中删除所有字符,然后再在字符串中出现此字符: 不知道我该怎么做。 问题答案: 您可以使用strstr做到这一点。
问题内容: 我是python编程的新手,我有点困惑。我尝试从字符串中获取字节以进行哈希和加密,但是我得到了 字符串前面的b字符,如以下示例所示。有什么办法可以避免这种情况吗?有人可以提供解决方案吗?对不起这个愚蠢的问题 输出: 问题答案: 解码是多余的 首先,您对这种情况有误解,这是因为对所发生的事情有误解。 您会得到,因为您已对其进行编码,现在它是一个字节对象。 修正: 您可以先打印字符串 编码