Hola Ecfisa, cogí una parte del código que me recomendaste y lo metí en el segundo procedure listar2 y ya me resultó.
El codigo quedó así:
Código Delphi
[-]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, FileCtrl, StrUtils;
type
TFPrincipal = class(TForm)
Button1: TButton;
Disco: TDriveComboBox;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
public
end;
var
FPrincipal: TFPrincipal;
implementation
{$R *.dfm}
procedure listar1( sDirectorio: string; var Resultado1: TStringList );
var
Busqueda: TSearchRec;
iResultado: Integer;
begin
iResultado := FindFirst( sDirectorio+':\'+'*.*', faAnyFile, Busqueda );
while iResultado = 0 do
begin
if (busqueda.Attr=FaDirectory+FaHidden) or (busqueda.Attr=FaHidden) then
begin
Resultado1.Add(busqueda.Name);
end;
iResultado := FindNext( Busqueda );
end;
FindClose( Busqueda );
end;
procedure listar2( sDirectorio: string; var Resultado2: TStringList );
var
Busqueda: TSearchRec;
iResultado: Integer;
begin
iResultado := FindFirst( sDirectorio+':\'+ '*.lnk', faArchive, Busqueda );
while iResultado = 0 do
begin
if busqueda.Attr=faArchive then
begin
if UpperCase(ExtractFileExt(Busqueda.name)) = '.LNK' then
DeleteFile(sDirectorio+':\' + Busqueda.Name)
end;
iResultado := FindNext( Busqueda );
end;
FindClose( Busqueda);
end;
procedure TFPrincipal.Button1Click(Sender: TObject);
var
a,b:Tstringlist;
i:integer; Unidad,x:String; Eli:Boolean;
begin
Unidad:=Disco.Drive;
a:=TstringList.Create; b:=TStringList.Create;
listar1(Unidad,a);
listar2(Unidad,b);
try
for i:=0 to a.InstanceSize-1 do
begin
x:=Unidad+':\'+a[i];
SetFileAttributes (PChar(x), FILE_ATTRIBUTE_NORMAL)
end;
except
ShowMessage('listo!');
end;
a.Free; b.Free;
end;
end.
La verdad es que me salió de suerte pues apenas estoy empezando a aprender el manejo de archivos.
Gracias nuevamente Ecfisa por tus efectivas soluciones.
Saludos y que estés bien.