Dizem que uma imagem vale mais que mil palavras, então vejam esta:
Pra quem não se deu ao trabalho de entender, o enredo é o seguinte. Estou numa janela de comandos do Windows e num diretório que contém um arquivo chamado file.txt contendo oito bytes. Daí eu invoco o comando de linha “ftp” e me conecto a um servidor remoto. Verifico que não existe no servidor FTP um arquivo com o mesmo nome e me engano usando o comando “get file.txt” ao invés do “put file.txt”.
Parece que quando fazemos um “get” no ftp do Windows ele abre o arquivo pra escrita antes de verificar se o arquivo existe no servidor FTP. Nesse caso, a abertura pra escrita trunca o arquivo local e o deixa com tamanho 0.
Um colega me disse que no Windows 98 e no Windows 2000 o arquivo local é removido do diretório. O exemplo acima foi executado num Windows XP, que não remove o arquivo mas o deixa vazio. Parece que eles estão melhorando… alguém pode testar no Windows Vista pra ver se já está corrigido?
Em tempo, testei na minha máquina Linux (Kubuntu 7.04) e o problema não ocorre.
