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.