Avatar billede lanstorp Nybegynder
08. oktober 2004 - 14:18 Der er 1 kommentar

Slet "låste" jpg's automatisk

Jeg skal slette alle jpg der bliver autogenereret på en webserver. Den kode jeg er kommet frem til virker tildels.

program DeleteJPG;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  searchResult  : TSearchRec;
  sDir          : string;
begin
  sDir := paramstr(1);
  if not DirectoryExists(sDir) then exit;
  sDir := IncludeTrailingBackslash(sDir);

  if FindFirst('*.jpg', faAnyFile, searchResult) = 0 then begin
    repeat
      DeleteFile(sDir+searchResult.Name);
    until FindNext(searchResult) <> 0;
    FindClose(searchResult);
  end;
end.

Problemet er at flere (næste alle jpg) er brugt eller ikke frigivet, et andet sted i systemet. De kan heller ikke slettes i stifinder. De kan kun slettes efter reboot.

Er der ikke en måde man kan tvinge en slet frem på, selv om et andet aktivt program tilsyneladende har en pseudoreference til jpg'ene ?
Avatar billede doc404 Novice
12. oktober 2004 - 10:38 #1
Du kan ikke slette filer som er åbne eller låst af en anden process. Er du helt sikker på, at det ikke blot er et spørgsmål om din app har rettigheder til filen?

Ellers find ud af hvem, der holder filen åben og evt. hvorfor eller om det blot er noget slam kode. Brug denne utility

http://www.sysinternals.com/ntw2k/freeware/handle.shtml
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester