Classe File

4 respostas
N

Pessoal, estou com um problema.

Bom, vou colocar vcs a par do que meu programa deveria fazer:

Existe uma pasta, onde pastasMeses(Janeiro~Dezembro)

Pra cada pastaMes, existem pastasDias.
Não necessariamente irá existir pastasMeses de todos os meses, e pastas dias de todos os dias.

O usurário deve informar uma lista de arquivos, independente do tipo, e ele deve criar a pasta do dia atual, nessa pasta atual ele deve copiar os arquivos que o usuário informou.

O programa deve gerar uma lista com os últimos arquivos salvos, de cada mes, exemplo:

pasta agosto
pasta 07/08
B.txt
pasta 08/08
A.txt
pasta 09/08
B.txt

resultdado da lista: A.txt B.txt //sendo A.txt do dia 08/08 e B.txt do dia 09/08

Até aqui meu programa esta totalmente certo.

Então se o usuário informou um dos itens dessa lista, ele só será salvo se o lastModified entre o arquivo da lista e o arquivo informado retornar verdadeiro. Caso contrário o arquivo deve ser retirado da lista que o usurário informou.
Nessa parte, estou querendo salvar o arquivo com o diretório do qual ele veio, para tornar mais fácil a comparação.

Por exemplo, ao invés de salvar: B.txt

iria salvar:
C:\MeusDocumentos\Pasta1\Pasta2\C:-MeusDocumentos-Pasta3-B.txt
Como podem ver, C:-MeusDocumentos-Pasta3-B.txt, é o nome do arquivo a ser copiado, assim tornará fácil a comparação para poder excluir ou não da lista que o usuário informou.
Eu pensei no seguinte:

File novo = new File(f2.getPath() + "\" +f1.getPath().replace("\", "-")); //onde f2 é o enderço da pasta backup, (até o dia 10/08) e f1 o arquivo a ser copiado

Como estou postando isso no fórum, voces podem deduzir que esta dando erro, quando gera o arquivo, apenas gera um arquivo chamado “C”.

Sugestões são bem vindas.

Obrigado por ler esse imeeeeenso tópico.

4 Respostas

E

Você só pode ter um “:” em um nome de arquivo no Windows. O segundo “:” deu problemas. Você tem de trocar o segundo “:” por alguma outra coisa.

seudito

Qual a saída de novo.getPath()???

N

Muito obrigado, meu amigo.

Funcionou exatamente como eu queria quando eu mudei para:

File novo = new File(f2.getPath() + "\" +f1.getPath().replace("\", "-").replace(":", "-"));

N

C:\Users\USUARIO\Documents\Backup2\Agosto\10-08-2011\C:-Users-USUARIO-Documents-Relatório do Seminário 4-6.docx

Mas já foi resolvido, era por causa do segundo “:”

Obrigado, seudito.

Criado 10 de agosto de 2011
Ultima resposta 10 de ago. de 2011
Respostas 4
Participantes 3