Копирование файлоВ

 
 
 
Сообщения:13
Столкнулся с такой задачей
есть скажем в директории файлы такогоо типа:
10-14-2007.jpeg
11-14-2007.jpeg

А как мне интересно взять скажем файлы и скопировать в другую папку.

По поводу копирования файлов (не по одному а сразу несколько )написано очень мало. Куда копнуть подскажите. может пример приведете ?
 
 
Сообщения:2030
Каждый файл все равно отдельно копировать. Получить список их и по списку в цикле...

Всякое решение плодит новые проблемы
 
 
Сообщения:13
Jean:
Каждый файл все равно отдельно копировать. Получить список их и по списку в цикле...


А вам не кажется что это жутко неудобно ?
 
 
Сообщения:1688
{CaSpEr}:
А вам не кажется что это жутко неудобно ?

Напиши один раз пару классов, типа:

class BatchFileProcessor {
    private String dir;
    private FilenameFilter filter;

    public BatchFileProcessor(String dir, FilenameFilter filter) {
      this.dir = dir;
      this.filter = filter;
    }

    public void process(FileAction action) throws IOException {
      File fdir = new File(dir);
      File[] flist = fdir.list(filter);
      for (File f : flist) {
        action.perform(fdir, f.getName());
      }
    }
}

class RegexFilenameFilter implements java.io.FilenameFilter {
    private java.util.regex.Pattern pattern;
    public FileFilter(String pattern) {
        setPattern(pattern);
    }
    public setPattern(String pattern) {
        this.pattern = new java.util.regex.Pattern(pattern);
    }
    public String getPattern() {
        return pattern.pattern();
    }
    public boolean accept(File dir, String fileName) {
        return pattern.matcher(fileName).matches();
    }
}

interface FileAction {
    public void perform(File file) throws IOException;
}

class CopyFileAction implements FileAction {
    private String dir;
    public FileAction(String toDir) {
      dir = toDir;
    }

    public void perform(File file)  throws IOException {
      File copyFile = new File(dir, file.getName());
      copy(file, copyFile);
    }

    private void copy(File src, File dst) throws IOException {
      InputStream in = new FileInputStream(src);
      OutputStream out = new FileOutputStream(dst);
    
      byte[] buf = new byte[1024];
      int len;
      while ((len = in.read(buf)) > 0) {
          out.write(buf, 0, len);
      }
      in.close();
      out.close();
    }
}


и будет удобно:

BatchFileProcessor fprocessor = new BatchFileProcessor("c:/temp", new RegexFilenameFilter("*-07.jpg"));
fprocessor.process(new CopyFileAction("c:/temp_copy"));


P.S. За компилируемость кода не отвечаю. :-)
 
 
Сообщения:3874
Тема. В мемориз и примеры. :)
 
Модераторы:Нет
Сейчас эту тему просматривают:Нет