Ver Mensaje Individual
  #1  
Antiguo 12-06-2019
Avatar de Carmelo Cash
Carmelo Cash Carmelo Cash is offline
Miembro
 
Registrado: jul 2003
Ubicación: Buenos Aires
Posts: 261
Reputación: 21
Carmelo Cash Va por buen camino
Borrar archivos del celular conectado al USB

Buenas tardes foro:

No sé si este es foro correcto, si no es así pido disculpas y el administrador lo podrá mover donde considere.


Necesito borrar los archivos del celular conectado a la pc por USB.


luego de conectar abro en mi PC y veo la carpeta que quiero vaciar como:

"Equipo\J7 Neo\Phone\WhatsApp\Media\WhatsApp Documents\Sent"

o

"Equipo\J7 Neo\Phone\DCIM\XXXX'


Utilicé un memo en donde guardo todas las capetas que quiero vaciar.

+-------------------------------------------------------------------------------------------------+
| E:\Borrar
| Equipo\J7 Neo\Phone\WhatsApp\Media\WhatsApp Documents\Sent
| "Equipo\J7 Neo\Phone\DCIM\XXXX' |
+-------------------------------------------------------------------------------------------------+

Luego leo el memo y voy borrando con una función fBorrarTodosLosArchivos que bajé de embarcadero....

En la pruebas en el disco "E:\Borrar" se borran todos los archivos

Pero en la carpeta de Celu no se borra nada, el problema es que no lee la lista de archivos como en las capetas.

Estoy usando Delphi 10



Código Delphi [-]
procedure TForm1.btBorrarCelularClick(Sender: TObject);
var
  i:Integer;
  f, a :String;
begin

    for i:=0 to memCarpetasCelular.Lines.Count-1 do begin
      f:=memCarpetasCelular.Lines[i];
      a:=f;
      if f<>'' then begin
        if copy(f,length(f)-3,1)<>'.' then begin
          memCarpetaControl.lines.add(fBorrarTodosLosArchivos(f));
        end
        else begin
          try
          deletefile(a);
            memCarpetaControl.lines.add('ok borrado '+a);
          except
            memCarpetaControl.lines.add('error '+a);
          end;
        end;;
      end;
    end;

end;

function TForm1.fBorrarTodosLosArchivos(f:string):String;
var
  i      : Integer;
  aFiles : TStringlist;
begin
  result:='error en '+f ;
  aFiles := TStringlist.Create;
  try
    GetFileList(aFiles,f,'*.*');
    for i:=0 to aFiles.Count-1 do begin
        DeleteFile(aFiles[i]);
    end;
    result:='ok borrado '+f
  finally
    aFiles.Free;
  end;
end;


También probé este procedimiento que está en embarcadero y me pasa lo mismo.

Código Delphi [-]
procedure DeleteOneDirectory(path:string);
var
   l_attr      : word;
   l_SearchRec : TSearchRec;
begin
   if FindFirst(path+'\*.*',faAnyFile,l_SearchRec) = 0 then begin
      Repeat
         if (l_SearchRec.Name <> '.') and (l_SearchRec.Name <> '..') then  begin
          try
            DeleteFile (PChar(path+'\'+l_SearchRec.Name)) ;
          except
            Showmessage('error '+ path+'\'+l_SearchRec.Name);
          end;
         end;
       until FindNext(l_SearchRec) <> 0;
       FindClose(l_SearchRec);
   end;
end;

Bueno, espero se entienda....

Desde ya, gracias por su atención.
Responder Con Cita