Por que a pasta% Temp% foi inventada?

4

Por que a pasta% Temp% foi inventada?

Por que algum programa precisará ter uma pasta temporária para dados? Eles podem não apenas usar a RAM ou qualquer outro armazenamento temporário?

    
por Pacerier 30.08.2011 / 00:44

3 respostas

9

O uso de arquivos "temporários" remonta aos tempos em que os computadores executavam o MS-DOS e tinham 640 kB de memória física e sem paginação. A reprodução de memória tetris com drivers de dispositivo e TSRs, tentando desesperadamente liberar alguma RAM, era um tempo comum (embora não exatamente "favorito") para os proprietários de PCs.

Hoje em dia,% TEMP% ainda é útil como um lugar para guardar arquivos que não precisam ser salvos permanentemente. Por exemplo, quando você faz o download de um documento de um site e escolhe "Abrir" em vez de "Salvar", ele ainda precisa ser salvo em um arquivo local antes de ser entregue ao programa - este é o único método 100% suportado de aprovação dados para outros programas. (Afinal, se foi apresentado como um arquivo no site, é mais simples para salvá-lo como um arquivo novamente.)

Da mesma forma, se você abrir um arquivo diretamente de dentro de um arquivo, ele será descompactado para% TEMP% primeiro - o programa arquivador cuida da descompactação para que outros programas não precisem. Muitas vezes, você pode até editar o arquivo no programa e ele será reempacotado posteriormente. (Em comparação, se o programa tivesse para descompactar o arquivo em si, ele precisaria reempacotá-lo toda vez que você salvasse, mesmo que raramente seja necessário.)

    
por 30.08.2011 / 00:54
3

Programadores e usuários experientes têm usado locais chamados temp ou test por anos para armazenar arquivos sem importância que podem ser deletados quando eles forem finalizados.

%temp% especificamente relacionado ao Windows Temp Folder Variable , Essa é uma variável por usuário (em sistemas modernos, o padrão é %USERPROFILE%\AppData\Local\Temp ). Os aplicativos podem gravar nessa pasta quando tiverem um requisito de arquivo temporário.

O maior exemplo disso são os instaladores. Muitos instaladores são arquivos únicos e, quando você vê aquela barra que leva muito tempo em instalações grandes, ela geralmente está expandindo os arquivos para a pasta% temp%.

Muitas vezes, escrevo scripts em lote que exigem uma pasta temporária / de teste. Eles são minúsculos, e eu costumo sempre usar md temp , use, rd temp /s . Se eu estivesse distribuindo um script e envolvesse muitos arquivos, seria sensato usar um nome exclusivo na pasta %temp% (seria apenas um pouco mais complicado de codificar). Embora a maioria das pessoas não altere o caminho padrão, há muitas pessoas que fazem isso, ou ambientes de servidor em que você deseja o mínimo possível no disco rígido principal.

Quanto a por que não usar a memória, ela ainda é válida hoje em dia - não é grande o suficiente para tudo. Meu primeiro laptop tinha 2 MB ou 4 MB de memória (eu esqueço), e enquanto muitos programas eram pequenos, muitas vezes havia alguns que estavam na faixa de 5-10 MB (o MS Office costumava ter cerca de 20-30 MB para a suíte inteira!).

Agora, a média é muito maior (a máquina de nível de entrada é de cerca de 2-4 GB e os usuários avançados são 8-16 GB, os usuários avançados com um pouco de dinheiro de 16 GB +), com algumas exceções, como scripts, a memória pode realmente ser usada muito mais do que é hoje.

No entanto, até que as máquinas de nível de entrada estejam na faixa de 16 a 32 GB (dê alguns anos!), não acho que teremos muitos avanços.

%temp% está aqui para ficar por um longo tempo ainda!

    
por 30.08.2011 / 01:10
1

Com o software que escrevi, usei pastas temporárias para processar arquivos de CVR . Os arquivos são geralmente 512 MB de tamanho. Durante o processamento, os arquivos passam por vários formatos.

  • Formato A: dados de propriedade originais.
  • Formato B: dados entrelaçados.
  • Formato C: Quatro arquivos G711 e um arquivo CVR contendo dados adicionais.
  • Formato D: arquivos Four Wave e o arquivo CVR.

Eu começo copiando o arquivo original para uma pasta Temp onde todo o processamento ocorre.

Eu uso uma biblioteca para converter do formato A para o formato C (automaticamente via formato B). Esta biblioteca leva apenas um nome de arquivo de entrada. Ele decide sobre um nome de arquivo de saída na mesma pasta. Está tudo fora do meu controle.

Eu uso uma segunda biblioteca para converter do formato C para o formato D.

O diretório final em que os arquivos são colocados é visível para o usuário, portanto, não quero que eles vejam os arquivos passando por suas transições ou que vejam arquivos parciais, apenas a saída final. Um todo o processamento está completo, os arquivos necessários são movidos para o destino final e a pasta Temp é excluída.

A pasta Temp oculta todo esse processamento do usuário. Tudo o que eles precisam saber é a porcentagem de progresso.

    
por 30.08.2011 / 02:44