Array
(
)

excluir com exceções

Crcam
   - 22 mar 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
#Código


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



Martins
   - 23 mar 2006

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 array 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!!!


Adriano Santos
   - 23 mar 2006


Citação:
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 array 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.

#Código


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] := 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[I]);

end;



Aroldo Zanela
   - 23 mar 2006

Colegas,

Podem simplificar usando a classe TStringList.


Martins
   - 23 mar 2006


Citação:
Colegas,

Podem simplificar usando a classe TStringList.


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

valew


Crcam
   - 23 mar 2006

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


Martins
   - 23 mar 2006

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


Martins
   - 23 mar 2006

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!


Crcam
   - 23 mar 2006

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


Crcam
   - 24 mar 2006

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....


Crcam
   - 25 mar 2006

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?????????


Martins
   - 25 mar 2006


Citação:
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!!


Crcam
   - 25 mar 2006

isso eu sei mas a questão é COMO?