Algumas razões pelas quais consigo pensar:
- Na maioria das plataformas, as movimentações de arquivos são atômicas, mas as gravações de arquivos não são (especialmente se você não puder gravar todos os dados de uma só vez). Portanto, se você tiver o padrão típico produtor / consumidor (um processo produz arquivos, o outro assiste a um diretório e pega tudo o que encontrar), gravar primeiro em uma pasta temporária e só depois mover para o local real significa que o consumidor nunca verá um arquivo. arquivo inacabado.
- Se o processo que grava o arquivo morrer no meio, você tem um arquivo quebrado no disco. Se estiver em um local real, você precisa cuidar de limpá-lo sozinho, mas se estiver em um local temporário, o sistema operacional cuidará disso.
- Se o arquivo for criado enquanto uma tarefa de backup estiver em execução, o trabalho poderá selecionar um arquivo incompleto; Os diretórios temporários geralmente são excluídos dos backups, portanto, o arquivo só será incluído quando for movido para o destino final.
- O diretório temporário pode estar em um sistema de arquivos rápido mas volátil (por exemplo, um disco virtual), que pode ser benéfico para coisas como fazer o download de vários fragmentos do mesmo arquivo em paralelo ou fazer processamento no local no arquivo com lotes de buscas. Além disso, os diretórios temporários tendem a causar mais fragmentação do que os diretórios com leituras, gravações e exclusões menos frequentes, e manter o diretório temporário em uma partição separada pode ajudar a manter a fragmentação das outras partições.
TL; DR - resume-se basicamente a atomicidade, ou seja, você quer fazer com que (no local final) o arquivo esteja completo ou não esteja em um determinado momento.