Ir para conteúdo
Fórum Script Brasil
  • 0

Lixeira - Como Recuperar Os Arquivos E Como Obter A Lista ?


Tetzner

Pergunta

6 respostass a esta questão

Posts Recomendados

  • 0
Usando o delphi, e se voce for bom em liguagem assembler é possivel.
Jhonas, não entendi. :huh:

Um arquivo excluído, simplesmente vai para a pasta RECYCLER. Se você habilitar a visualização de arquivos ocultos no Windows Explorer, vai encontrar uma pasta destas em cada unidade que você possuir.

O problema pode ser referente a questões de acesso, já que cada lixeira está vinculada ao usuário logado. Observe a imagem da pasta na minha unidade D: aqui na empresa. Veja que há apenas um ícone com a figura da lixeira - esta é a única pasta que consigo visualizar seu conteúdo:

imagemxr7.jpg

E abrindo ela, é possível ver o nome dos arquivos excluidos:

imagempb6.jpg

Então, seria uma questão de utilizar funções da API (Shell32). Veja alguns exemplos do site Aboult.com:

Delete files with the ability to UNDO (apagar arquivo com possibilidade de recuperação)

Programmatically Empty Windows Recycle Bin from Delphi (limpar a lixeira programaticamente)

Tem um exemplo em VB onde dá para encontrar alguns objetos/comandos que podem ser utilizados para chegar aonde você deseja: How to programmatically use the Recycle Bin (CodeProject)

Esta questão de mais baixo nível, estaria mais associado no caso de uma recuperação em que fosse feita uma pesquisa física no disco - eu acho.

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0
Esta questão de mais baixo nível, estaria mais associado no caso de uma recuperação em que fosse feita uma pesquisa física no disco - eu acho.

Micheus voce chegou no ponto ... neste tipo de pesquisa que voce fez, voce não vai visualizar todos os arquivos deletados tendo ou não ido para a pasta Recycler ... usando o assembler voce vai mais longe e ve mais a fundo.

Link para o comentário
Compartilhar em outros sites

  • 0
Micheus voce chegou no ponto ... neste tipo de pesquisa que voce fez, voce não vai visualizar todos os arquivos deletados tendo ou não ido para a pasta Recycler ... usando o assembler voce vai mais longe e ve mais a fundo.
quando você fala deste assembler a que se refere? Utilizar interrupções da BIOS para acessar o disco fisicamente?

Link para o comentário
Compartilhar em outros sites

  • 0

Comentario :

Muitas vezes ouvimos "linguagem assembler". É um erro muito difundido. Na realidade, Assembly é o nome da linguagem e assembler é um programa capaz de compilar código fonte em arquivos objeto.

A linguagem Assembly é considerada de baixo nível. Isto não significa que seja menos importante ou eficiente que uma linguagem chamada de alto nível: são apenas modos diferentes de se programar e níveis diferentes de atuação. O que posso dizer é que, com uma linguagem de baixo nível como a Assembly, você pilota diretamente a CPU do seu computador - nada de intermediários.

Uma das características da Assembly é que cada linha do código fonte possui apenas uma instrução para o processador (CPU). Por exemplo, MOV EAX,EDX irá MOVer o conteúdo do registrador EDX para o registrador EAX. Neste caso, a instrução "MOV" é chamada de mneumônico. Os mneumônicos são os "apelidos" das instruções, mais fáceis de guardar na memória do que seu valor hexadecimal exigido pelo processador. De mneumônico em mneumônico podemos escrever nosso código fonte e fazer com que o processador faça exatamente o que queremos sem firulas ou perda de tempo.

O resultado é um programa enxuto, rápido e altamente eficiente.

Micheus ... esta linguagem de programação foi uma das primeiras que eu me interessei ( isto a mais de 20 anos ) consegui montar muitas coisas interessantes que de outra maneira não seria possivel, não a utilizo já a varios anos ( não conseguia decorar os mneumônicos ) , Exemplo:

PUSH 0
PUSH ADDR FILE_DONE ;dá endereço do arquivo FILE_DONE para
            receber o resultado
PUSH ECX,EDX        ;ECX = bytes que devem ser escritos,
            EDX=fonte de dados, 
PUSH ESI            ;ESI = manipulador do arquivo
CALL WriteFile      ;escrever ECX bytes de EDX para ESI

Sei que é possivel fazer, mas já não me lembro mais como ( mas para quem trabalha direto com ela é moleza ), por isso indiquei o Restoration.exe que uso atualmente, muito bom e bem simples de usar ( ele consegue recuperar quase que tudo o que foi deletado )

Link para o comentário
Compartilhar em outros sites

  • 0

Obrigado pelo post, mas eu sei do que se trata o assembler. Também já tive oportunidade de fazer algumas coisas utilizando dela.

Entretanto, minha pergunta deve-se ao fato de que o acesso direto a disco em ambiente Windows NÃO deve ser feito por este tipo de procedimento.

Que eu saiba, o acesso ao disco deve ser feito via controles IOCTL via função API DeviceIoControl. E a unidade deve ser "lockada" enquanto acessada (coisa assim). Apenas lí a respeito - nunca implementei nada em Windows.

Bom, evidentemente não lembro onde li, mas pesquisando encontrei alguns comentários a respeito para Windows:

- How can I write to floppy disk sector? (tem exemplo de acesso ao disquete em Delphi)

- Reading/Writing disk sectors on non-standard file systems

Mesmo a utilização do assembler (respeitando as questões do ambiente windows) poderia ser utilizado, já que você pode carregar as instruções da API em código assembler também.

Já em ambiente DOS, ai sim, você poderia fazer o que quizesse com o HD já que trata-se de um ambiente Mono-tarefa (só teria sua aplicação acessando o disco). Exemplo em DOS:

- Absolute Disk Sector Reader (programa em ASM)

Para este tipo de ambente, eu cheguei a implementar varredura no disco para verificação/validação de Bad-Clusters, modificações na FAT, Diretórios, variáveis do Setor de Boot, dentre outras tantas coisas que realmente podem ser feitas utilizando as interrupções da BIOS para acesso a disco (principalmente a $13) via códificação assembler, C e pascal.

É importante ficar claro que para manipular dados diretamente no disco, você tem que ter conhecimentos sobre as estruturas de armazenamento (FAT12, FAT16, NTSC,...), setores lógicos e físicos. Também deve ter em mente o risco que estará correndo ao fazer algum tipo de operação incorreta (comum quando se está implementando) - o que pode ser irreversível. E por ai vai....

Nesta página do Torry's, é possível encontrar (procure na página por):

- Physical Disk Access v.1.0

- Raw Disk Access v.1.1

- TDiskIO v.2.0

Para quem quizer se arriscar...

Abraços

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...