AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Code-Bibliothek Library: Windows API / MS.NET Framework API Delphi Vor dem Leeren prüfen, ob Dateien im Papierkorb sind
Thema durchsuchen
Ansicht
Themen-Optionen

Vor dem Leeren prüfen, ob Dateien im Papierkorb sind

Ein Thema von MathiasSimmack · begonnen am 17. Jun 2002
Antwort Antwort
MathiasSimmack
(Gast)

n/a Beiträge
 
#1

Vor dem Leeren prüfen, ob Dateien im Papierkorb sind

  Alt 17. Jun 2002, 09:06
Im EDH (Easy Delphi Helper) gibt es eine Funktion, mit der man den Papierkorb leeren kann. Das würde ich allerdings davon abhängig machen, ob denn überhaupt Dateien vorhanden sind. Und dafür habe ich diese Funktion von NicoDE ausgegraben, die IMHO unbedingt in unsere Bibliothek gehört:

Delphi-Quellcode:
type
  TSHQueryRBInfo =
    packed record
      cbSize : dword;
      i64Size : int64;
      i64NumItems : int64;
    end;
  TSHQueryRecycleBin = function(pszRootPath: LPCTSTR;
    var pSHQueryRBInfo: TSHQueryRBInfo): HRESULT; stdcall;

var
  SHQueryRecycleBin : TSHQueryRecycleBin = nil;
  RBHandle : THandle = 0;
  RBInfo : TSHQueryRBInfo;

begin
  RBHandle := LoadLibrary('shell32.dll');
  if(RBHandle <> 0) then
  begin
    SHQueryRecycleBin := GetProcAddress(RBHandle,'SHQueryRecycleBinA');
    if(@SHQueryRecycleBin = nil) then
    begin
      FreeLibrary(RBHandle); RBHandle := 0;
    end;
  end;

  fillchar(RBInfo,sizeof(TSHQueryRBInfo),0);
  RBinfo.cbSize := sizeof(TSHQueryRBInfo);

  if(RBHandle <> 0) and (assigned(SHQueryRecycleBin)) then
    if(SHQueryRecycleBin('',RBInfo) = S_OK) then
      if(RBInfo.i64NumItems > 0) then
      begin
        // Daten vorhanden, Papierkorb kann geleert werden!
        // (s. Funktion im EDH)
      end;

  if(RBHandle <> 0) then FreeLibrary(RBHandle);
end.
Das meiste sollte verständlich sein. Wichtig ist nur die Zeile
if(RBInfo.i64NumItems > 0) then In dem Fall könnt ihr davon ausgehen, dass sich etwas im Papierkorb befindet, was dann auch gelöscht werden kann. Interessant zu wissen ist, dass die unsichtbare Datei "desktop.ini", die sich in jedem Fall im Papierkorb-Ordner befindet, davon ausgenommen ist.

Danke an NicoDE!

[edit=Matze][code] durch [delphi]-Tags ersetzt und Code formatiert. Mfg, Matze[/edit]
  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 15:01 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