O diretório não oculto não aparece no Explorer, mas o programa que o criou pode acessá-lo


26

Estou usando o IMAPSize para fazer backup de minhas caixas de correio. O processo apenas despeja o conteúdo da sua caixa de correio nos .emlarquivos do seu disco. De qualquer forma, a primeira caixa de correio que eu fiz backup aparece como eu esperava. No entanto, o próximo não aparece no Explorer e, se eu inseri-lo na barra de endereço, ele diz que não existe.

No entanto, o IMAPSize está insistindo que os arquivos estejam lá. (Um monte de escrita de disco estava sendo realizado durante a operação.) Além disso, o diretório não aparecem na caixa de diálogo diretório do Windows e - como eu tenho ferramentas GNU instalado - mostra em ls(mas não no nativa dir). Não consigo cdentrar no diretório, mas lsparece poder acessá-lo (e, de fato, os diretórios e arquivos que eu espero parecem estar lá).

janela do prompt de comando mostrando as listagens

Observe também que o carimbo de data e hora e o tamanho do arquivo backup.dbsão diferentes na saída dire ls -l.

Em resumo: o que está acontecendo aqui e como faço para corrigir isso !?


1
A única diferença visível que vejo é que ls -lestá mostrando um número peculiar de links físicos para os diretórios e arquivos "ocultos" ... Não sei por que isso é, nem como um link físico é interpretado na terra do NTFS.
Xophmeister #

... Apenas para confirmar: eu posso acessar os dados nos arquivos "ocultos", na linha de comando, usando cat(outro GNU coreutil). Mais uma vez, no entanto, as ferramentas nativas do Windows (por exemplo, type) não conseguem encontrar o arquivo.
Xophmeister 02/04

Respostas:


63

Deixe-me adivinhar: o programa que criou o arquivo, e também os utilitários GNU, não estão sendo executados como administrador.

Primeiro, um pouco de história. Nos dias do Windows XP, muitos programas supunham que eles sempre seriam executados como administrador e gravavam em lugares como C:\Windowse C:\Program Files (x86)com abandono selvagem. Com o Vista, a Microsoft tentou fazer com que menos pessoas fossem administradores, mas usuários padrão não podem escrever nesses locais. Eles precisavam desses programas duvidosos para continuar trabalhando (ou as pessoas não atualizariam). Então, eles introduziram um recurso mágico chamado virtualização de UAC .

Os programas executados como usuários padrão podem pensar que suas gravações em locais importantes foram bem-sucedidos, mas, na realidade, o Windows desviou os dados em um local por usuário. Quando esses programas procuram arquivos em um diretório, o Windows verifica se há arquivos no armazenamento virtual desse local e, se houver, os adiciona à lista de diretórios. (Existe uma funcionalidade equivalente para o Registro.)

Parece que seu programa de email tentou gravar em um local Program Files (x86)enquanto estava executando como um usuário normal. A gravação foi redirecionada e, portanto, não foi para esse lugar. O programa ainda pode vê-lo, porque o Windows mantém a ilusão. O Explorer não o vê porque anuncia ao sistema operacional que é bem-comportado e, portanto, não precisa de redirecionamento. O comando do prompt de dircomando não é um programa (é apenas um recurso cmd.exe), por isso também é considerado "informado" e, portanto, não são mostrados os arquivos de compatibilidade. lsé um programa que, evidentemente, não é conhecido, por isso consegue ver os arquivos de compatibilidade.

Você encontrará seu arquivo aqui:

%LOCALAPPDATA%\VirtualStore\Program Files (x86)\IMAPSize\backup

Enquanto bisbilhota VirtualStore, você pode se surpreender com os programas que não são bem comportados e precisam da rede de segurança da virtualização.

Se você deseja interromper o redirecionamento, execute o programa como administrador ou salve seus backups em um local no qual possa gravar sem privilégios de administrador.


16
E aqui eu pensei que conhecia o Windows. Ou isso é uma piada de abril, ou eu aprendi algo significativo hoje. obrigado, @ Ben N!
Aganju

3
@Aganju Há alguns meses, tive que ajudar um usuário do Windows a criar um par de chaves para o WinSCP. E esses se tornaram invisíveis da mesma maneira que a descrita na pergunta. Na época, eu hipotetizei uma explicação praticamente igual à dada nesta resposta. Não me preocupei em verificar minha hipótese, porque o problema foi resolvido colocando o arquivo no diretório inicial do usuário. Mas pelo menos posso confirmar que essa resposta não me parece uma piada.
kasperd

3
Bem, eu vou ser amaldiçoado! Lá estão todos. Esse é um comportamento estranho , mesmo que se pretenda. Eu pensei que tinha um erro no sistema de arquivos! ... Isso também explicaria por que meu primeiro backup de caixa de correio aparece: O programa foi executado pela primeira vez a partir do instalador ("Você deseja executar tal e qual agora?"), Que teria elevado a ter privilégios de administrador; enquanto a execução "oculta" era como o usuário local.
Xphmeister #

1
@Gangan Acho que você nunca usou muito o Vista. Ele tinha um recurso para mostrar arquivos virtualizados no Explorer; porque o problema foi suficientemente comum por alguns anos. Quando o Win7 apareceu, o software mais usado parou de assumir que ele poderia gravar em subpastas do diretório de instalação; e o recurso foi significativamente menos visível ou possivelmente removido nas versões mais recentes do Windows.
21716 Dan Neely

4
@Xophmeister É uma troca. Conforme observado na resposta, o software de gravação em seu próprio diretório de aplicativos era assustadoramente comum antes do Vista. Este é um enorme buraco de segurança, portanto teve que ser resolvido. As alternativas foram: 1) impedir a gravação e interromper todos os aplicativos; 2) usar a virtualização para salvar os arquivos em um local seguro. 1) é obviamente insustentável e muito contra o SOP da Microsoft e, no final, levaria apenas a todos executando tudo sob o administrador como antes. Pode ser confuso, mas ainda é provavelmente a melhor opção. Não escreva para diretórios perigosos.
Luaan 02/04
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.