Quando o Explorer copia um arquivo, onde estão os dados resultantes armazenados durante o processo de cópia?

1

Quando copio um arquivo grande usando o Explorer no Windows 7, o arquivo resultante aparece vazio até que o processo de cópia seja concluído. Onde posso encontrar o conteúdo do arquivo copiado até agora?

    
por doors 7 23.09.2011 / 21:01

3 respostas

3

Where can I find the contents of the file copied so far?

No arquivo. Um dos comportamentos mais delicados que a Microsoft preservou do MS-DOS em vários sistemas operacionais é que os metadados do arquivo - em particular os timestamps, atributos e informações de tamanho - são (no caso padrão, onde nenhum sinalizador especial é definido pelo programa). gravar no arquivo, modificar esse comportamento) não atualizado até que um identificador aberto para o arquivo seja fechado ou uma chamada de limpeza seja feita em um identificador aberto para o arquivo.

Isso é particularmente confuso para usuários de Unix e Linux. Nesses sistemas operacionais, a cópia em memória do nó i sempre contém o tamanho atual do arquivo, mesmo que o nó i ainda não tenha sido gravado em disco, e é isso que stat() / fstat() retornará e, portanto, o que uma listagem de diretório (formulário longo) exibirá.

No Windows NT, o que FindFirstFile() et al. irá retornar não irá mudar até que um identificador para o arquivo seja fechado ou liberado. Durante uma operação de cópia, isso geralmente significa o identificador de arquivo que o processo de cópia está usando para gravar no arquivo de destino que está sendo fechado no final da operação. Mas pode-se forçar uma atualização de metadados por meio de simplesmente abrir e fechar o arquivo uma segunda vez enquanto o processo de cópia está se desfazendo.

    
por 24.09.2011 / 04:57
1

Se você vir um arquivo vazio no destino, o conteúdo copiado desaparece.

O Windows Explorer criará o arquivo de destino para gravação, mas não fará alterações se o progresso for interrompido. O arquivo de destino deve ter sido excluído automaticamente, mas às vezes o sistema pode falhar antes de poder fazer isso.

Se você quiser uma cópia recuperável, use manipuladores de cópia de terceiros.

    
por 23.09.2011 / 21:10
0

Se o Explorer estiver copiando entre dois locais no mesmo sistema de arquivos, na minha experiência, está copiando para o arquivo de destino o tempo todo, mas a exibição do tamanho do arquivo nem sempre é atualizada. Você já tentou abrir uma janela do CMD e digitar DIR algumas vezes?

Ao copiar entre dois sistemas de arquivos, mais uma vez na minha experiência, o tamanho do arquivo do Explorer parece ser atualizado de forma mais confiável.

    
por 23.09.2011 / 21:28