Copiar conteudo de pasta com FileInputStream!

4 respostas
R

Pessoal…

Usei o FileInputStream / FileOutputStream para copiar um arquivo de uma pasta para outra. Blz... Mas, como tenho vários arquivos, queria saber se tem como copiar todo o conteúdo da pasta origem para a pasta destido sem precisar fazer arquivo por arquivo.

Rodrigo

4 Respostas

fiaux

Nunca fiz isso, mas olhando rapidamente a API de FIle vi o seguinte

File[] listFiles()
Returns an array of abstract pathnames denoting the files in the directory denoted by this abstract pathname.
Faz uma tentativa.

http://java.sun.com/j2se/1.4.2/docs/api/java/io/File.html

P
public void copyFileHierarchy(File folderFrom, File folderTo) throws IOException {
        if (!folderTo.exists()) {
            folderTo.mkdirs();
        }
        File[] files = folderFrom.listFiles(osNameFilter);
        for (File f : files) {
            if (f.isDirectory()) {
                copyFileHierarchy(f, new File(folderTo + File.separator + f.getName()));
            } else if (f.isFile()) {
                File fNew = new File(folderTo.getPath() + File.separator + f.getName());
                FileOutputStream fOut = new FileOutputStream(fNew);
                FileInputStream fIn = new FileInputStream(f);
                fIn.getChannel().transferTo(0L, fIn.available(), fOut.getChannel());
                fIn.close();
                fOut.close();
            }
        }
    }
fiaux

Ok, eu só não gosto de fazer as coisas para os outros e sim mostrar o caminho.

P

fiaux,

Concordo contigo, e digo mais, é bem mais prazeroso fazer por si mesmo. Mas, não vejo problemas em passar o código, principalmente muita gente aprende mais facilmente através de exemplos.

Criado 4 de abril de 2008
Ultima resposta 4 de abr. de 2008
Respostas 4
Participantes 3