Por que o Windows consegue renomear uma pasta mais rápido do que é capaz de excluir uma?

0

No trabalho que faço, muitas vezes tenho que renomear e excluir pastas.

A exclusão de pastas em uma Shift é muito rápida - talvez 10 a 20 segundos para 1-2 GB, enquanto a renomeação da mesma pasta ocorre instantaneamente.

Meu entendimento é que quando eu desloco uma pasta, o Windows está passando pelo índice de arquivos e dizendo que 'espaço x para y não está mais ocupado por esses arquivos'.

Na verdade, imaginei que o Windows teria que fazer um processo semelhante para renomear uma pasta - mudar o caminho das janelas no índice de arquivos.

Alguém pode dar uma visão geral de alto nível do que está acontecendo com o Windows quando renomeia e exclui pastas?

    
por user1068446 07.11.2014 / 01:17

1 resposta

6

Renomear uma pasta (ou arquivo) requer:

  • verificar se o novo nome ainda não existe na pasta pai;
  • sobrescrevendo o nome na entrada de diretório apropriada.

Nenhuma subpasta ou arquivo na árvore de diretórios renomeada é afetado de alguma forma.

A exclusão de um diretório requer:

  • percorrendo a árvore de diretórios para encontrar cada arquivo em cada subdiretório;
  • verificar se cada arquivo não está em uso e excluí-lo remendando seu diretório e marcando o espaço usado como disponível na tabela de alocação de disco;
  • depois que todos os arquivos forem removidos de um subdiretório, excluindo o diretório e disponibilizando seu espaço, como para um arquivo;
  • continuando este processo até que o diretório original seja excluído.

O tempo para excluir um diretório, portanto, depende do número de arquivos e subdiretórios e do tamanho e grau de fragmentação de cada um.

Por outro lado, mover um diretório para um disco ou partição diferente requer a criação e a cópia de cada arquivo em cada subdiretório, bem como a exclusão do diretório de origem.

    
por 07.11.2014 / 01:50