Файл перемещения Java с определенным расширением файла - PullRequest
1 голос
/ 22 апреля 2011

Привет, я работаю над простой программой, и для ее установки мне нужна программа, которая проверяет каталог на наличие zip-файлов, а любые находящиеся там zip-файлы необходимо переместить в другую папку.

Допустим, у меня есть папка 1, и она содержит 6 zip-файлов, а затем у меня есть еще одна папка с именем folder2, в которой мне нужны все zip-файлы, и только папки zip в папке 1 перемещены в папку 2

Спасибо за любую помощь по этой проблеме.

Кстати, я нуб, поэтому любые примеры кода будут с благодарностью

Ответы [ 5 ]

2 голосов
/ 22 апреля 2011

Для каждого файла в 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 голос
/ 22 апреля 2011

Используйте 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")
  }
});
1 голос
/ 22 апреля 2011

Шаблон соответствия «* .zip» в файловой системе называется «файловым глобблингом». Вы можете легко выбрать все эти файлы с помощью ".zip" файлового глобуса, используя эту документацию: Поиск файлов . java.nio.file.PathMatcher - это то, что вы хотите. Кроме того, вы можете перечислить каталоги как обычно и использовать имя файла и метод ".endsWith ()" для String, который будет выполнять что-то похожее.

0 голосов
/ 08 декабря 2011

Мое решение:

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();
    }
}
0 голосов
/ 22 апреля 2011

Список всех файлов в 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 renameTo

...