Einzelnen Beitrag anzeigen

Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#2

Re: RmDir () liefert E/A-Fehler 32 nach findfirst-methode

  Alt 8. Apr 2006, 01:11
Hey.

Post mal sicherheitshalber den Quellcode...

Sind vielleicht Dateiein im Ordner?! Hätte dir vielleicht ein Funktion, die ein Verzeichnis löscht. Habe ich im Easy Helper gefunden (von mir ungetestet!):

Zitat:
Die untenstehende Function löscht komplette Verzeicnhisse inkl. aller Unterverzeichnisse.

Als Parameter muss das zu löschende Verzeichnis übergeben werden, z.B.: 'C:\Test1\Verzeichnis'.

Die Function gibt True zurück, wenn das Verzeichnis erfolgreich gelöscht werden konnte, ansonsten erhälst du als Result False.

Delphi-Quellcode:
function DelDir(Dir : String) : Boolean;
var
 FileOption : TSHFileOpStruct;
begin
 ZeroMemory(@FileOption,SizeOf(FileOption));
 with FileOption do
 begin
   wFunc := FO_DELETE;
   fFlags := FOF_SILENT or FOF_NOCONFIRMATION;
   pFrom := PChar(Dir + #0);
 end;
 Result := (ShFileOperation(FileOption) = 0);
end;
Die Funktion kann Beispielsweise so aufgerufen werden:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if DelDir('C:\Test\Verzeichnis') then
    Showmessage('Das Verzeichnis konnte gelöscht werden')
  else
    Showmessage('Das Verzeichnis konnte nicht gelöscht werden');
end;
Ausserdem muss die Unit ShellApi eingebunden werden.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat