| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/06/2009 09:54:44
|
Murl
JavaChild
Membro desde: 03/04/2009 10:34:42
Mensagens: 116
Localização: DF
Offline
|
Fiz esse codigo so para entender melhor Serialization... Ai beleza! Deu certo! O objeto foi salvo em outro método... Ai eu recupero ele nesse e da tudo certo. Até chegar em if (file.renameTo(rename)). Nao ta proseguindo o programa! Essa expressão está resultando em "false"!
Alguém sabe por que?
Depois do rename eu nem me preocupei ainda porque o programa nunca passou dali mesmo... =P
Vlws!
edit: btw, so estou querendo renomear o arquivo "nomes.txt" que ja existe pra fazer um backup antes de fazer a operação de escrever!
edit: fazendo file.isFile() retorna true!
This message was edited 3 times. Last update was at 19/06/2009 10:51:12
|
OMW to SCWCD;
SCJP 6 |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/06/2009 10:13:13
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
Primeira coisa - você pode trocar isto aqui, que deixa seu programa chumbado no Windows:
para:
Segunda coisa - renameTo não consegue renomear alguma coisa se o arquivo de destino já existir. Você precisa verificar se o destino (que no caso é nomesB.txt) já existe; se existir, remova-o.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/06/2009 10:18:39
|
Murl
JavaChild
Membro desde: 03/04/2009 10:34:42
Mensagens: 116
Localização: DF
Offline
|
Beleza! Valeu pela dica! Vou mudar usando o path como diretorio pro construtor do File né!
O arquivo nomesB.txt nao existe =\.
So existe o arquivo nomes.txt!
Fiz esse programa pra testar... Se o arquivo nao existir ele cria e renomeia.. Ok
Se o arquivo "teste2.txt" ja existe, ele cria o arquivo teste.txt, e como você disse nao consegue renomear para "teste2.txt" porque "teste2.txt" já existe.
Se o arquivo "teste.txt" já existe e o arquivo "teste2.txt" não existe... Ele renomeia normalmente o arquivo "teste.txt" para "teste2.txt"!
O meu programa é parecido com esse ultimo caso, ja existe o arquivo "nomes.txt" que eu quero renomear para "nomesB.txt" e não ta dando certo o_o
This message was edited 1 time. Last update was at 19/06/2009 10:23:53
|
OMW to SCWCD;
SCJP 6 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/06/2009 10:22:40
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
Murl wrote:Beleza! Valeu pela dica! Vou mudar usando o path como diretorio pro construtor do File né!
O arquivo nomesB.txt nao existe =\.
So existe o arquivo nomes.txt!
Essa história de "não existe" só acredito vendo
De qualquer maneira, tome sempre um pouco de cuidado - o retorno de renameTo não é particularmente muito confiável no Windows, já que basicamente o Java deixa o abacaxi para a API do Windows "MoveFile" e essa API não é muito católica; eu normalmente faço o seguinte: crio um método que faz 3 coisas:
a) Remove o arquivo destino, caso existir
b) Executa renameTo
c) Checa se o arquivo original não existe mais e se o arquivo destino foi criado com esse nome. Se isso houver ocorrido, eu retorno true, senão retorno false.
|
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/06/2009 10:29:12
|
Murl
JavaChild
Membro desde: 03/04/2009 10:34:42
Mensagens: 116
Localização: DF
Offline
|
mudei o nome do arquivo pra você acreditar que ele nao existe entao =P
Rodei 3 vezes e deu 3 numeros diferentes e nao deu certo renomear...
O problema é que nao quero deletar o arquivo pra ele servir como backup entendeu? Logo abaixo eu crio o "nomes.txt" de novo com os novos nomes. Mas ai eu pensei... Se eu somente deletar o arquivo "nomes.txt" e alguma catastrofe acontecer durante o processo de criação dele de novo, tudo será perdido!
edit: esquece... lá atras eu tinha esquecido de fechar um BufferedReader com esse arquivo =X
This message was edited 1 time. Last update was at 19/06/2009 10:51:37
|
OMW to SCWCD;
SCJP 6 |
|
|
 |
|
|