Einzelnen Beitrag anzeigen

wb32

Registriert seit: 4. Jul 2003
143 Beiträge
 
#1

Temp Ordner rekursiv löschen geht nicht...

  Alt 6. Aug 2003, 02:50
Hallo alle zusammen...

Folgende Probleme:

ich will den Ordner Temp auf meiner Platte leeren und verwende dazu folgenden Source:

Wenn ich dem Pfad zum Temp Ordner mit der folgenden Funktion ermittle:

Delphi-Quellcode:
procedure TForm1.tab1Show(Sender: TObject);
var
  Buffer: array[0..MAX_PATH] of Char;
begin
   GetTempPath(SizeOf(Buffer) - 1, Buffer);
    ordner.Text:= StrPas(Buffer);
end;
Bekomme ich folgendes Ergebniss:

Code:
C:\DOKUME~1\stephan\LOKALE~1\Temp\
ich habe aber auch noch hier einen Temp Ordner:
Code:
C:\WINDOWS\Temp\
Welcher ist denn nun wofür ?

Die Routine zum löschen des Inhaltes:

Delphi-Quellcode:
function DelDir(dir: string): Boolean;
var
  fos: TSHFileOpStruct;
begin
  ZeroMemory(@fos, SizeOf(fos));
  with fos do begin
    wFunc := FO_DELETE;
    fFlags := FOF_SILENT or FOF_NOCONFIRMATION or FOF_NOERRORUI;
    pFrom := PChar(dir + #0);
  end;
  Result := (0 = ShFileOperation(fos));
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
DelDir(ordner.Text+'*.*');
end;

Der Ordner kann damit nicht geleert werden wenn Dateien darin enthalten sind auf die zur Laufzeit zugegriffen wird...
Was kann man da machen ?
  Mit Zitat antworten Zitat