您好我正在处理一个简单的程序,并且为了设置程序,我需要程序检查目录中的zip文件,并且需要将其中的任何zip文件移动到另一个文件夹中。
让我说我有folder1,它包含6个zip文件,然后我有另一个名为folder2的文件夹,我需要所有的拉链,只有folder1中的拉链移动到folder2
感谢您对此问题的任何帮助。
顺便说一下,我是一个菜鸟,所以任何代码样本都会非常感激
答案 0 :(得分:2)
对于folder1
中的每个文件,请使用String#endsWith()
查看文件名是否以".zip"
结尾。如果是,请将其移至folder2
。 FilenameFilter
提供了一种很好的方法(虽然它并非绝对必要)。
它看起来像这样(未经测试):
File f1 = new File("/path/to/folder1");
File f2 = new File("/path/to/folder2");
FilenameFilter filter = new FilenameFilter()
{
@Override public boolean accept(File dir, String name)
{
return name.endsWith(".zip");
}
};
for (File f : f1.listFiles(filter))
{
// TODO move to folder2
}
答案 1 :(得分:1)
文件系统中匹配“* .zip”的模式称为“文件通配”。使用此文档,您可以使用“.zip”文件glob轻松选择所有这些文件: Finding Files。 java.nio.file.PathMatcher就是你想要的。或者,您可以正常列出目录,并使用文件的名称和String的“.endsWith()”方法,它将执行类似的操作。
答案 2 :(得分:0)
列出baseDir中的所有文件,如果以'.zip'结尾,则将其移至destDir
// baseDir = folder1
// destDir = folder2
File[] files = baseDir.listFiles();
for (int i=0; i<files.length; i++){
if (files[i].endsWith(".zip")){
files[i].renameTo(new File(destDir, files[i].getName()));
}
}
的API
答案 3 :(得分:0)
使用FilenameFilter
String pathToDir = "/some/directory/path";
File myDir = new File(pathToDir);
File[] zipFiles = myDir.listFiles(new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.endsWith(".zip")
}
});
答案 4 :(得分:0)
我的解决方案:
import java.io.*;
import javax.swing.*;
public class MovingFile
{
public static void copyStreamToFile() throws IOException
{
FileOutputStream foutOutput = null;
String oldDir = "F:/CAF_UPLOAD_04052011.TXT.zip";
System.out.println(oldDir);
String newDir = "F:/New/CAF_UPLOAD_04052011.TXT.zip.zip"; // name the file in destination
File f = new File(oldDir);
f.renameTo(new File(newDir));
}
public static void main(String[] args) throws IOException
{
copyStreamToFile();
}
}