Java 如何根据名称长度删除文件

Java 如何根据名称长度删除文件,java,Java,我有一个后缀相同的文件列表,文件名包含日期和文件类型,如下所示:year-month-day\u filetype。。除了其中一个不包含day year-month_文件类型之外。。我需要删除一个不包含日期的。。请帮忙。。非常感谢 private void scanFolder(final String fileTypename, File currentFolder, File outputFolder) { System.out.println("Scanning folder ["

我有一个后缀相同的文件列表,文件名包含日期和文件类型,如下所示:year-month-day\u filetype。。除了其中一个不包含day year-month_文件类型之外。。我需要删除一个不包含日期的。。请帮忙。。非常感谢

private void scanFolder(final String fileTypename, File currentFolder, File outputFolder) {
    System.out.println("Scanning folder [" + currentFolder + "]...");
    File[] files = currentFolder.listFiles(filter);
    for (File file : files) {
        if (file.isDirectory()) {
            scanFolder(fileTypename, file, outputFolder);
        } else {
            copy(file, outputFolder);
        }
    }
    for (File f : outputFolder.listFiles()) {
        if (f.getName().contains("CW")) {
            f.delete();
        }
        System.out.println("Processing " + outputFolder.listFiles() + "   Deleted ... ");
    }
}

因此,您需要一个函数来检查您的字符串是否是您期望的格式,但错过了日期。这应该能奏效

private boolean missingDay(String filename){
    boolean result = false;
    String[] parts = filename.split("_",3);
    if (parts.length == 3){
        String[] dateParts = parts[1].split("-",3);
        if (dateParts.length<3){
            result = true;
        }
    }
    return result;
}

你的头衔与你的目标不符。基于名称长度删除文件和基于缺少日期删除文件不是一回事。感谢您回答我的问题,我想删除缺少日期的文件。。通常情况下,如果名称缺少日期,它将是列表中最短的一个,因此我们可以按名称的长度删除,如果名称缺少日期更好,我们可以按名称的长度删除,谢谢。一种方法是在下划线上拆分文件名,拆分元素1(如果存在),注意不要在-,上查看数组的结尾以外,然后看看您是否有3个条目或更少。是的,但是如果您有一个新类型的文件恰好有一个较短的名称,会发生什么情况?基于长度的删除容易出现错误,并且不具有可伸缩性,基于某些参数(如缺少日期)的删除更有可能适用于更多情况,并且不会错误地删除文件。决定哪一个更适合您的项目。再次感谢,如果我可以在缺少日期之前删除文件,对我的项目将更好
if (f.getName().contains("CW") || missingDay(f.getName())
private void scanFolder(final String fileTypename, File currentFolder, File outputFolder){
        System.out.println("Scanning folder [" + currentFolder + "]...");
        File[] files = currentFolder.listFiles(filter);
        for (File file : files) {
            if (file.isDirectory()) {

                    scanFolder(fileTypename, file, outputFolder); 

                }else { 
                    copy(file, outputFolder);
                } 
            }
                     for (File f : outputFolder.listFiles()) 
                     {
                         if (f.getName().contains("CW") || missingDay(f.getName())){ 
                        f.delete();}
                    System.out.println("Processing " + outputFolder.listFiles() + "   Deleted ... ");
}  
    }        

    private boolean missingDay(String filename){
        boolean result = false;
        String[] parts = filename.split("_",3);
        if (parts.length == 3){
            String[] dateParts = parts[1].split("-",3);
            if (dateParts.length<3){
                result = true;
            }
        }
        return result;
    }