champy,
Revisa este código:
Código Delphi
[-]
Procedure GetDrive(FileName : String);
var
Driver: Pchar;
i, Length: Integer;
SearchFile : Boolean;
OldErrorMode: word;
searchResult : TSearchRec;
begin
OldErrorMode:= SetErrorMode(SEM_NOOPENFILEERRORBOX or SEM_FAILCRITICALERRORS);
SearchFile := False;
GetMem(Driver, 100);
Length := GetLogicalDriveStrings(100, Driver);
try
for i := 0 to Length-1 do
begin
if GetDriveType(Pchar(Driver[i] + ':\')) = DRIVE_REMOVABLE then
begin
if FindFirst(Driver[i] + ':\' + FileName, faArchive, searchResult) = 0 then
begin
MessageDlg('Archivo Sincronizado en Medio Removible', mtinformation, [mbok], 0);
SearchFile := True;
break;
end;
end;
end;
finally
SetErrorMode(OldErrorMode);
FreeMem(Driver);
if not Searchfile then
MessageDlg('Archivo No Sincronizado en Medio Removible', mtinformation, [mbok], 0)
end;
end;
Esta variante combina dos flags de la función
SetErrorMode y utiliza
FindFirst para verificar si el archivo esta presente en la unidad.
Espero sea útil
Nelson.