Movendo arquivos para um servidor

6 respostas
F

gostaria de saber como faço para mover arquivos usando o renameTo, mas ao inves de usar um drive do pc quero usar um servidor sem ter que mapear uma unidade. Se eu mapear eu consigo fazer, entretanto quero usar o nome do servidor ou o ip do servidor para transferir o arquivo sem ter que mapear. É possivel ?

6 Respostas

T

a) renameTo não funcionará, mapeando ou não o drive, já que ele não serve para mover, e sim renomear (ou seja, não há “bits passeando” pela rede). Você precisa copiar o arquivo para o seu destino, e depois remover o arquivo original.
b) O servidor deve ter um “share” definido, para você poder acessar o tal share.

F

cara, como nao funciona? eu tb achei que nao funcionava pelo fato de ler lido tb, entretanto, em casa, tenho 2 pcs conectados na mesma rede.

Mapei uma pasta dele com um drive e usei o metodo renameTo e funcionou. Estanho ne, mas funcionou…

T

Bom, que eu saiba renameTo usa o método “rename” do C no Windows, e esse método ( Run-Time Library Reference: rename, _wrename ) tem a seguinte definição:

Por sua vez, o método “rename” usa a API do Windows MoveFile. Ele diz que esse método não pode mover um diretório entre volumes (por exemplo, passar um diretório do C: para o D: ).

e ela só vai funcionar do jeito que você quer em alguns casos.

F

Muito estranho mesmo!!! Fiz testes com unidades mapeadas e em outro drive (no meu caso foi do C para o D) e funcionou perfeitamente…

muito estranho mesmo…

Caso nao funcionasse, o mais indicado seria usar o Stream?

T

Li a documentação da Microsoft e ela diz que renameTo (ou seja, rename do C ou MoveFile da API do Windows) realmente consegue mover arquivos de um drive para outro (mesmo mapeados), mas não consegue mover diretórios de um drive para outro. Como seu caso é só de arquivos, então está OK.

De qualquer maneira, tome cuidado porque se um arquivo com o mesmo nome já existir no destino, MoveFile (ou seja, File.renameTo) não vai funcionar. Mas isso você já deve estar esperando, não?

F

sim, claro, fiquei um metodo para deletar o arquivo e criar um novo caso ele exista

Criado 15 de junho de 2009
Ultima resposta 15 de jun. de 2009
Respostas 6
Participantes 2