Cópia de arquivo via java  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
Renato_Teixeira
Thread.start()
[Avatar]

Membro desde: 29/05/2009 11:01:17
Mensagens: 42
Localização: São José dos Campos
Offline

Pessoal,

Boa Tarde,

Estou com uma dúvida, existe alguma maneira de eu copiar um arquivo de um diretório para outro via código?

O cenário é o seguinte, preciso criar uma aplicação que pegue determinado arquivo de um diretório (EX.: C:\) e copie ele para outro diretório (Ex.: D:\) alguém poderia me ajudar?

Muito Obrigado.

Abs
[MSN]
markin1
JavaEvangelist

Membro desde: 07/12/2008 20:58:59
Mensagens: 494
Localização: São Paulo
Offline

pesquise sobre InputStream e OutputStream.

Rush x)

Quem é o juíz?
[Email]
Felagund
GUJ Master
[Avatar]

Membro desde: 26/07/2006 11:51:36
Mensagens: 1732
Localização: Santa e Bela Catarina
Offline

Pesquise pelo NIO, FileChannel e afins, é uma API muito melhor em performance que a API padrão de IO com seus InputStreams

att
Rafael Felix

Rolling With Code
Twitter
[WWW]
Jose111
JavaGuru
[Avatar]

Membro desde: 06/04/2009 13:20:32
Mensagens: 211
Localização: Depois do System.exit(0);
Offline

Ótimo link sobre o assunto : http://www.exampledepot.com/egs/java.io/pkg.html

vocedeviaestarprogramando
[MSN]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20576
Localização: Curitiba/PR
Offline

This message was edited 2 times. Last update was at 03/06/2009 12:22:09


@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
Renato_Teixeira
Thread.start()
[Avatar]

Membro desde: 29/05/2009 11:01:17
Mensagens: 42
Localização: São José dos Campos
Offline

Obrigado a todos pelas respostas, vamos a alguns comentários:

Jose111: Seu link é fantástico consegui utilizar várias coisas dele, mas no que eu realmente preciso no caso deste post deu alguns probleminhas...



Quando ele chega na linha: OutputStream out = new FileOutputStream(dst); ele ao invés de pular para a próxima ele volta para a classe que a chamou ...

segue o código que chama este método:



ViniGodoy: no seu código aconteceu o seguinte, eu copiei e colei seu código mas deu alguns probleminhas:



Ele esta dando uma mensagem para as linhas:

FileChannel sourceChannel = null;
FileChannel destinationChannel = null;


Alguém pode me ajudar?

Abs
[MSN]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20576
Localização: Curitiba/PR
Offline

Que erro deu?

Esse é exatamente o método que eu uso! Eu simplesmente recortei e colei o código do meu projeto!

Você deu
impot java.nio.channels.FileChannel;

No início do seu módulo?

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
Renato_Teixeira
Thread.start()
[Avatar]

Membro desde: 29/05/2009 11:01:17
Mensagens: 42
Localização: São José dos Campos
Offline

ViniGodoy:

Deu certo não tava importando mesmo...mas agora to com este erro:

debug:
java.io.FileNotFoundException: c:\teste (Acesso negado)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:179)
at java.io.FileOutputStream.<init>(FileOutputStream.java:131)
at tcm_redeso
at tcm_redesocial.CL_Copia.copyFile(CL_Copia.java:61)
at tcm_redesocial.IC_Login.btnOkActionPerformed(IC_Login.java:186)
at tcm_redesocial.IC_Login.access$000(IC_Login.java:12)
at tcm_redesocial.IC_Login$1.actionPerformed(IC_Login.java:94)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:231
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6216)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5981)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4583)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4413)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4556)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4220)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4150)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Component.dispatchEvent(Component.java:4413)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)


Pode me ajudar?

Abs

This message was edited 1 time. Last update was at 06/06/2009 20:52:06

[MSN]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20576
Localização: Curitiba/PR
Offline

Esse erro veio do sistema operacional, e disse que o acesso ao arquivo foi negado.

Verifique se o arquivo não estava em uso, se o diretório é acessível, se o arquivo existe mesmo, etc.

This message was edited 1 time. Last update was at 07/06/2009 20:46:37


@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
Renato_Teixeira
Thread.start()
[Avatar]

Membro desde: 29/05/2009 11:01:17
Mensagens: 42
Localização: São José dos Campos
Offline

ViniGodoy,

Consegui fazer copiar, eu estava no source setando o caminho do arquivo, mas no destino eu só colocava a pasta ae dava erro, agora junto a pasta eu coloco também o nome do arquivo, de uma olhada:



Agora tenho uma dúvida, onde ele pesquisa para saber se o arquivo já existe? pois eu queria colocar uma mensagem se caso existisse que não pode copiar... você consegue me ajudar?

Abs.
[MSN]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20576
Localização: Curitiba/PR
Offline


@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
romuloff
Java Ninja
[Avatar]

Membro desde: 02/07/2007 14:56:24
Mensagens: 254
Localização: Uberlandia - MG
Offline

ViniGodoy wrote:Esse erro veio do sistema operacional, e disse que o acesso ao arquivo foi negado.

Verifique se o arquivo não estava em uso, se o diretório é acessível, se o arquivo existe mesmo, etc.
Olá Vini;

Como seria essa parte de verificar se o arquivo não está em uso por outro processo que não seja o java ?
Estou precisando disso pra ontem e já estou procurando algo há algumas horas; sem sucesso.

This message was edited 1 time. Last update was at 20/02/2010 01:12:51

romuloff
Java Ninja
[Avatar]

Membro desde: 02/07/2007 14:56:24
Mensagens: 254
Localização: Uberlandia - MG
Offline

VERIFICAÇÃO DE ARQUIVO EM USO RESOLVIDA [ resolvido ]

Fiz assim (solução a ser aprimorada futuramente):

baseei-me aqui . ++

ks: java unlock file ; java verify use file ; java check "in use" file ; java "being used" file ; FileHandler ; arquivo "em uso" ; arquivo "sendo usado" ; java.nio ; file lock

This message was edited 2 times. Last update was at 20/02/2010 02:03:52

romuloff
Java Ninja
[Avatar]

Membro desde: 02/07/2007 14:56:24
Mensagens: 254
Localização: Uberlandia - MG
Offline

aew. uma solução melhorzinha que aprimorei de acordo com o comportamento da jvm.

This message was edited 1 time. Last update was at 22/02/2010 18:43:41

marcelo0386
Smalltalk

Membro desde: 26/04/2010 14:49:21
Mensagens: 2
Offline

No meu caso eu preciso copiar não só um arquivo mas 7 arquivos.

Como faço para copiar esses 7 arquivos específicos para outra pasta?

Além disso acredito que precisarei enviá-los e renomeá-los com a data que irei passar.

No código acima não compreendi onde defino os endereços dos arquivos.

This message was edited 1 time. Last update was at 27/08/2011 23:13:37

 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team