AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Delphi-PRAXiS - Lounge Betriebssysteme Ordner löschen: mit Win gehts nicht, mit Delphi schon ?
Thema durchsuchen
Ansicht
Themen-Optionen

Ordner löschen: mit Win gehts nicht, mit Delphi schon ?

Ein Thema von Helmi · begonnen am 1. Okt 2007 · letzter Beitrag vom 6. Okt 2007
Antwort Antwort
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.323 Beiträge
 
Delphi XE2 Professional
 
#1

Ordner löschen: mit Win gehts nicht, mit Delphi schon ?

  Alt 1. Okt 2007, 15:52
Hallo,

ich bin gerade total verwirrt.

Ich hatte mal eine Installation ausgeführt bei der leider der Windows-Installer Dateien entpackte und diese auf meiner externen Festplatte in einen Ornder zwischenparkte.
Soweit so gut, mein Problem war, dass ich diesen Ordner nicht mehr löschen konnte.

Mein Vista sagte, ich hätte nicht die Berechtigungen diesen zu löschen (trotz Admin-Rechten und ausgeschalteter Benutzerkontensteuerung oder wie das Ding heisst).

Letztens hatte ich diese Festplatte bei einem Freund und hab hatte ihm gebeten zu versuchen diesen Ordner zu löschen.
Er hat Win XP Pro. Auch Win XP hat sich geweigert. Er hatte dann noch ein Tune Up-Programm mit dem man Daten löschen kann.
Das hat dann soweit auch geklappt, bis auf einen Unterordner und dessen Dateien. Diese konnten nicht gelöscht werden und deswegen auch nicht der eigentliche Ordner.

Nun hatte ich zwar weniger Dateien, aber dieser Ordner war noch da.

Jetzt dacht ich mir ich könne ja mal probieren, diesen Ordner mit einem Code aus Delphi raus zu löschen.

Bei dsdt.info hab ich diesen Code gefunden:

Delphi-Quellcode:
uses ShellAPI;

function DeleteFile(const AFile: string): boolean;
var
 sh: SHFileOpStruct;
begin
 ZeroMemory(@sh, sizeof(sh));
 with sh do
   begin
   Wnd := Application.Handle;
   wFunc := fo_Delete;
   pFrom := PChar(AFile +#0);
   fFlags := fof_Silent or fof_NoConfirmation;
   end;
 result := SHFileOperation(sh) = 0;
end;
Da dieser Code die ShellAPI verwendet, dacht ich mir es könne ja nicht funktionieren, da ja Windows mit die Finger im Spiel hat.

ABER: Ich kann es nicht fassen. Ich bekam ein true von dieser Funktion und bei einem Blick auf die Festplatte: Der Ordner ist verschwunden, weg, away, verflogen,... - einfach nicht mehr da.

Nun wieder zu meiner Verwirrtheit:
Wieso konnt ich den mit dem oberen Code löschen, aber über Windoofs nicht?
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.323 Beiträge
 
Delphi XE2 Professional
 
#2

Re: Ordner löschen: mit Win gehts nicht, mit Delphi schon ?

  Alt 2. Okt 2007, 13:56
push
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: Ordner löschen: mit Win gehts nicht, mit Delphi schon ?

  Alt 2. Okt 2007, 14:33
Mit dem Satz "über Winows löschen" meinst Du vermutlich "mittels Windows-Explorer löschen".

Also:
Der Explorer prüft vor dem Löschen eine ganze Latte an Sachen.
z.B. Berechtigungen, offene Zugriffe auf die Date, usw.

Wenn Du mit den shFileOperations kommst, dann benutzt Du den grossen Hammer, um die Dateien aus dem System zu klopfen. Das ist nicht schön und bestimmt von MS auch nicht so gewollt...
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#4

Re: Ordner löschen: mit Win gehts nicht, mit Delphi schon ?

  Alt 2. Okt 2007, 14:35
Zitat von RavenIV:
Wenn Du mit den shFileOperations kommst, dann benutzt Du den grossen Hammer, um die Dateien aus dem System zu klopfen. Das ist nicht schön und bestimmt von MS auch nicht so gewollt...
Die nutzt der Windows Explorer auch nur

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Ordner löschen: mit Win gehts nicht, mit Delphi schon ?

  Alt 2. Okt 2007, 14:40
Der Windows-Explorer prüft aber vorher noch jede Menge Sachen.
Erst dann benutzt er den Hammer und Meisel.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
DMW

Registriert seit: 6. Sep 2006
Ort: Münster
269 Beiträge
 
Delphi XE Professional
 
#6

Re: Ordner löschen: mit Win gehts nicht, mit Delphi schon ?

  Alt 2. Okt 2007, 15:42
Auch auf meinem System blockiert der Explorer oft das Löschen von Verzeichnissen. Es hat vermutlich damit zu tun, daß ich eine meiner Festplattenpartitionen mittels Reparse Point in einen Unterordner einer anderen gemountet habe, denn es tritt nur dort auf.
Von der Kommandozeile (rd) oder mittels eines Fremdprogrammes funktioniert es aber.
Moritz
  Mit Zitat antworten Zitat
blackdrake

Registriert seit: 22. Aug 2003
Ort: Bammental
618 Beiträge
 
Delphi 10.3 Rio
 
#7

Re: Ordner löschen: mit Win gehts nicht, mit Delphi schon ?

  Alt 2. Okt 2007, 23:38
Hallo.

Wenn du ein Problen haben solltest, eine Datei zu löschen, die ständig benutzt wird (oder aus irgendeinem anderen Grund gesperrt und vllt. nicht mehr freigegeben wurde), kann dir das Tool "Unlocker" (http://ccollomb.free.fr/unlocker/) helfen. Dieses Tool gibt das Handle frei oder killt den Prozess auf nachfrage.

Gruß
blackdrake
Daniel Marschall
  Mit Zitat antworten Zitat
Benutzerbild von Noinini
Noinini

Registriert seit: 12. Aug 2003
Ort: Kempen
38 Beiträge
 
Delphi 2007 Enterprise
 
#8

Re: Ordner löschen: mit Win gehts nicht, mit Delphi schon ?

  Alt 6. Okt 2007, 09:54
Hallo zusammen,

eine Reihe nützlicher Windows-Tools gibt es auch bei Sysinternals.

Viele Grüße

Iris
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz