Ver Mensaje Individual
  #1  
Antiguo 09-12-2012
Avatar de champy
champy champy is offline
Miembro
 
Registrado: sep 2003
Ubicación: Alicante, España
Posts: 75
Reputación: 21
champy Va por buen camino
Excepcion incontrolable al detectar medios extraibles

Buenos días ante todo. Tengo una consulta para los más manitas de por aquí.

Estoy tratando de hacer que mi aplicación detecte cuando se conecta al pc un teléfono Android para sincronizar varios datos de la tarjeta SD, para eso he utilizado algunos ejemplos que he encontré por el foro.

Código Delphi [-]
Procedure Buscar;
begin

Try
for Letra:= 'C' to 'J' do
begin
    if GetDriveType(Pchar(Letra+':\')) = DRIVE_REMOVABLE then
    begin
           //Solo es una prueba de acceder a la SD
           If FileExists(Letra+':\prueba.txt') then  ShowMessage('Tengo la SD, ahora sincronizo');
    end;
end;
Except;
End;

End;

Este ejemplo es fantástico para unidades de USB comunes, pero con las tarjetas SD o teléfonos (En solo cargar) tengo un problema, el sistema asigna la letra de la unidad aunque no este montada o no tenga medio insertado, así que cuando hago el FileExists o cualquier otro intento de acceder al contenido para ver si la tarjeta está presente, salta una excepción del sistema que no puedo controlar con Try-Except diciendo que (Inserte un disco en la unidad X: ).

La pregunta, ¿Existe alguna forma de verificar si el medio está insertado y montado antes de acceder a el para que no salte la excepción? o bien ¿Puedo controlar de alguna forma esa dichosa excepción?
Responder Con Cita