Java移动文件与某些文件扩展名

时间:2011-04-22 17:43:18

标签: java file zip move

您好我正在处理一个简单的程序,并且为了设置程序,我需要程序检查目录中的zip文件,并且需要将其中的任何zip文件移动到另一个文件夹中。

让我说我有folder1,它包含6个zip文件,然后我有另一个名为folder2的文件夹,我需要所有的拉链,只有folder1中的拉链移动到folder2

感谢您对此问题的任何帮助。

顺便说一下,我是一个菜鸟,所以任何代码样本都会非常感激

5 个答案:

答案 0 :(得分:2)

对于folder1中的每个文件,请使用String#endsWith()查看文件名是否以".zip"结尾。如果是,请将其移至folder2FilenameFilter提供了一种很好的方法(虽然它并非绝对必要)。

它看起来像这样(未经测试):

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()));
        }
    }

renameTo

的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();
    }
}