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 ?
Movendo arquivos para um servidor
6 Respostas
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.
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…
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.
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?
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?
sim, claro, fiquei um metodo para deletar o arquivo e criar um novo caso ele exista