我正在将一个zip文件从源目录移动到目标目录,但由于目标目录还可能包含一些其他文件,如文本文件,图像,文档文件,zip文件。
我必须查看和跟踪名称以模式abcd开头的zip文件,之后它可能像abcd4567fg.zip一样,所以我必须捕获这样的zip文件,并且还必须查看自我的最终目标以来的创建时间如果它们是在七天之前创建的,不是要在目标目录中保留这些名称以abcd开头的zip文件,我已经提出了以下解决方案但是不合适请告知
long timeInEpoch = System.currentTimeMillis(); // slightly faster than new Date().getTimeInMillis();
File f = new File("/tmp");
if (f.isDirectory()) {
final File[] files = f.listFiles();
for(int i =0; i < files.length ; i++ ) {
if( timeInEpoch - f.lastModifiedDate() > 1000*60*60*24*7 )
files[i].delete();
}
System.out.println(fileList);
}
答案 0 :(得分:0)
您必须检查文件名是否以abcd
开头并以.zip
结尾,所以
long timeInEpoch = System.currentTimeMillis(); // slightly faster than new Date().getTimeInMillis();
File f = new File("/tmp");
if (f.isDirectory()) {
final File[] files = f.listFiles();
for(int i =0; i < files.length ; i++ ) {
String fileName = files[i].getName():
if(fileName.startsWith("abcd") && fileName.endsWith(".zip") && timeInEpoch - f.lastModifiedDate() > 1000*60*60*24*7)
files[i].delete();
}
System.out.println(fileList);
}
您也可以使用RegEx:
if(fileName.matches("abcd.*\\.zip")) //file name starts with abcd and ends with .zip
但我觉得它会慢一些
无论如何,我们可以简单地将.jpg
文件重命名为.zip
,因此,如果您真的想知道自己的文件是zip
还是{{1}},那么您应check its MIME < / p>
答案 1 :(得分:0)
String fileStartsWith = "abcd";
String fileExtention = ".zip";
String folderLocation = "/temp";
long lValueOF7days = 7 * 24 * 60 * 60 * 1000l;
long timeInEpoch = System.currentTimeMillis(); // slightly faster than new Date().getTimeInMillis();
File f = new File(folderLocation);
if (f.isDirectory()) {
final File[] files = f.listFiles();
for (int i = 0; i < files.length; i++) {
if (files[i].getName().startsWith(fileStartsWith) && files[i].getName().endsWith(fileExtention) && (timeInEpoch - f.lastModified()) > lValueOF7days) {
System.out.println("File " + files[i].getName());
files[i].deleteOnExit();
} else {
System.out.println("Dont do any operation on other files :: " + files[i].getName());
}
}
}