Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 删除特定模式类型的zip文件_Java_File - Fatal编程技术网

Java 删除特定模式类型的zip文件

Java 删除特定模式类型的zip文件,java,file,Java,File,我已经编写了一个条件,在该条件下,它必须在目标文件夹中查找,并且必须删除扩展名为.zip的操作系统以及以名称开头的文件,例如“du_edf”模式(即文件名)可能是du_edf_tyu454656.zip,但它还必须确保这些zip文件不会被删除 如果在七天前创建,且开始时使用的模式为“abcd_edf”,且类型为zip,并且在七天前创建,则应删除该模式 下面是我提出的解决方案,但它不起作用。请告知其中的错误 if (c.isDirectory()) { final

我已经编写了一个条件,在该条件下,它必须在目标文件夹中查找,并且必须删除扩展名为.zip的操作系统以及以名称开头的文件,例如“du_edf”模式(即文件名)可能是du_edf_tyu454656.zip,但它还必须确保这些zip文件不会被删除 如果在七天前创建,且开始时使用的模式为“abcd_edf”,且类型为zip,并且在七天前创建,则应删除该模式 下面是我提出的解决方案,但它不起作用。请告知其中的错误

if (c.isDirectory()) {
                final File[] files = c.listFiles();
                long currentTime = System.currentTimeMillis();

                for (int i = 0; i < files.length; i++) {
                    //if (currentTime - files[i].lastModified() > 1000 * 60 * 60* 24 * 7)
                      String fileName = files[i].getName();

                           if(fileName.matches("abcd_edf*\\.zip") && currentTime - files[i].lastModified() > 1000 * 60 * 60* 24 * 7) 
                           {
                                                       files[i].delete();
                           }

                }

            }
if(c.isDirectory()){
最终文件[]文件=c.listFiles();
长currentTime=System.currentTimeMillis();
对于(int i=0;i1000*60*60*24*7)
字符串文件名=文件[i].getName();
if(fileName.matches(“abcd\u edf*\\.zip”)和¤tTime-files[i].lastModified()>1000*60*60*24*7)
{
文件[i].delete();
}
}
}

如果带有时间检查,则应在
之后添加大括号

final long week = 1000 * 60 * 60* 24 * 7;
for (int i = 0; i < files.length; i++) 
{
   if (currentTime - files[i].lastModified() > week )
   {
       String fileName = files[i].getName();
       if(fileName.matches("abcd_edf*\\.zip")) 
       {
            files[i].delete();
       }
   } 
}
final long week=1000*60*60*24*7;
对于(int i=0;iweek)
{
字符串文件名=文件[i].getName();
如果(fileName.matches(“abcd\U edf*\\\.zip”))
{
文件[i].delete();
}
} 
}

如果带有时间检查,则应在
之后添加大括号

final long week = 1000 * 60 * 60* 24 * 7;
for (int i = 0; i < files.length; i++) 
{
   if (currentTime - files[i].lastModified() > week )
   {
       String fileName = files[i].getName();
       if(fileName.matches("abcd_edf*\\.zip")) 
       {
            files[i].delete();
       }
   } 
}
final long week=1000*60*60*24*7;
对于(int i=0;iweek)
{
字符串文件名=文件[i].getName();
如果(fileName.matches(“abcd\U edf*\\\.zip”))
{
文件[i].delete();
}
} 
}

调整正则表达式以匹配表达式:

if(fileName.matches("abcd_edf.*\\.zip")
bao\u edf
匹配字符串文字

*
匹配任何字符的0到n次出现

\\.zip
与literal.zip匹配

当前正则表达式正在查找0到n次出现的
f
,但是它应该查找0到n次出现的任何字符,这些字符由
表示。量词
*
正在应用于当前表达式中的前一个字符,从而导致问题。请密切注意第二个测试,它通过了演示当前正则表达式行为的测试

public static void main(String[] args) {
    String fileName = "abcd_edf.zip";
    String fileName1 = "abcd_edfffffff.zip";
    String fileName2 = "abcd_edf_somethingelse.zip";



    System.out.println(fileName.matches("abcd_edf*\\.zip")); //prints true
    System.out.println(fileName1.matches("abcd_edf*\\.zip")); //prints true
    System.out.println(fileName2.matches("abcd_edf*\\.zip")); //prints false

    System.out.println(fileName.matches("abcd_edf.*\\.zip")); //prints true
    System.out.println(fileName1.matches("abcd_edf.*\\.zip")); //prints true
    System.out.println(fileName2.matches("abcd_edf.*\\.zip")); //prints true
}

调整正则表达式以匹配表达式:

if(fileName.matches("abcd_edf.*\\.zip")
bao\u edf
匹配字符串文字

*
匹配任何字符的0到n次出现

\\.zip
与literal.zip匹配

当前正则表达式正在查找0到n次出现的
f
,但是它应该查找0到n次出现的任何字符,这些字符由
表示。量词
*
正在应用于当前表达式中的前一个字符,从而导致问题。请密切注意第二个测试,它通过了演示当前正则表达式行为的测试

public static void main(String[] args) {
    String fileName = "abcd_edf.zip";
    String fileName1 = "abcd_edfffffff.zip";
    String fileName2 = "abcd_edf_somethingelse.zip";



    System.out.println(fileName.matches("abcd_edf*\\.zip")); //prints true
    System.out.println(fileName1.matches("abcd_edf*\\.zip")); //prints true
    System.out.println(fileName2.matches("abcd_edf*\\.zip")); //prints false

    System.out.println(fileName.matches("abcd_edf.*\\.zip")); //prints true
    System.out.println(fileName1.matches("abcd_edf.*\\.zip")); //prints true
    System.out.println(fileName2.matches("abcd_edf.*\\.zip")); //prints true
}