excluir com exceções

22/03/2006

pessoal como eu posso colocar nesse codigo abaixo uma forma que ele excluia tudo menos arquivos ou pastas que eu pré determine

ex: WUTemp , RECYCLER , System Volume Information
var SF:SHFILEOPSTRUCT;
begin
// public
 FillChar(SF, SizeOf(SF), 0);
  SF.Wnd    := Handle;
  SF.wFunc  := FO_DELETE;
  SF.pFrom  := pchar(PublicOrigem+´\*.*´+#0);
  SF.fFlags := FOF_NoConfirmation;
  SHFileOperation(SF);
// public



Crcam

Respostas

23/03/2006

Martins

Galera quanto a essa questão de não excluir as pastas de sistemas do Windows nem sobrepor, pode-se escrever um algoritmo usando uma [b:7d45b043c4]array[/b:7d45b043c4] contendo as pastas de sistemas e verificar antes da ação de exclusão ou cópia se as pastas e ou sub-pastas estão nessa matriz? Caso positivo como poderiamos dar inicio?

Valew galera!!!


Responder Citar

23/03/2006

Adriano Santos

Galera quanto a essa questão de não excluir as pastas de sistemas do Windows nem sobrepor, pode-se escrever um algoritmo usando uma [b:13648859af]array[/b:13648859af] contendo as pastas de sistemas e verificar antes da ação de exclusão ou cópia se as pastas e ou sub-pastas estão nessa matriz? Caso positivo como poderiamos dar inicio? Valew galera!!!


É isso ai Martins, eu faria desta forma. O problema seria o tamanho do array, acredito que teria que crar um array dinâmico.

procedure TForm1.Button1Click(Sender: TObject);
var
  ListaPermissoes : array of String;
  I : Integer;
begin
  {Limpa o Listbox}
  ListBox1.Items.Clear;

  {define um tamanho parao array}
  SetLength(ListaPermissoes, 10);

  {Aqui preencho o array com qualquer valor só para testar}
  for I := 1 to High(ListaPermissoes) do
    ListaPermissoes[I&93; := FormatFloat(´000´, I);

  {Loop para imprimir as strings do array. Aqui podemos fazer uma rotina para chamar a exclusão sim ou não}
  for I := 1 to High(ListaPermissoes) do
    ListBox1.Items.Add(ListaPermissoes&91;I&93;);

end;



Responder Citar

23/03/2006

Aroldo Zanela

Colegas,

Podem simplificar usando a classe TStringList.


Responder Citar

23/03/2006

Martins

[quote:e5c2cbddaa=´Aroldo Zanela´]Colegas,

Podem simplificar usando a classe TStringList.[/quote:e5c2cbddaa]

Bem lembrado Aroldo, podemos fazer com TStringList, e podemos ordenar tb de forma mais fácil com essa classe.

valew


Responder Citar

23/03/2006

Crcam

Desculpe a ignorância .
Entendi a idéia de vc´s fazer um alista de exceções mas como eu faço a fusão no código em questão


Responder Citar

23/03/2006

Martins

Chegaremos lá, primeiramente vamos criar a lista, depois vamos implementá-la no código em questão.


Responder Citar

23/03/2006

Martins

Campos, estou tentando escrever um código para lhe auxiliar usando API, já q vc está usando API em seu código original, então vamos usá-las, assim q eu passar a idéia para código, postarei aqui.

Boa sorte!


Responder Citar

23/03/2006

Crcam

agradeço muito o help pois todas as minhas tentivas falharam


Responder Citar

24/03/2006

Crcam

pessoal por favor alguém tem uma luz sobre esse assunto.


não posso deixar morrer um programa por causa de uma pasta

a que causa a parada critica é a System Volume Information mesmo oculta ela interrompe o processo....


Responder Citar

25/03/2006

Crcam

bom dia colegas programadores!

ninguém pode me ajudar com esse problema? tentei fazer um esquema com o xcopy mas para variar a forma tem falhas....


por favor alguem sabe como copiar arquivos subpastas de uma forma que as pastas do sistema não dem erro?????????


Responder Citar

25/03/2006

Martins

bom dia colegas programadores! ninguém pode me ajudar com esse problema? tentei fazer um esquema com o xcopy mas para variar a forma tem falhas.... por favor alguem sabe como copiar arquivos subpastas de uma forma que as pastas do sistema não dem erro?????????


Pelo o Windows é complicado, pois algumas pastas contem programas ou serviços sendo executados, então isso causa a falha, ou aquela mensagem de acesso negado. O ideal seria sua rotina de cópia ignorar as pastas, sempre q chegar nela, ignorar e passar para a próxima.

Boa sorte!!


Responder Citar

25/03/2006

Crcam

isso eu sei mas a questão é COMO?


Responder Citar