Einzelnen Beitrag anzeigen

Mark90
(Gast)

n/a Beiträge
 
#1

Dateien endgültig löschen

  Alt 10. Feb 2007, 09:15
Hi ich bin neu an diesem Board. Ich habe in der Code Library einen Code gefunden mit dem man DATEIEN löschen kann. Hierbei übergibt man die DATEI windows und beim Neustart wird sie gelöscht. Leider funktioniert dies bei mir nicht.

Delphi-Quellcode:

Hier noch mals die Funktion:

function DeleteFileDuringNextSystemBoot(aFileName: string): Boolean;
var
  Dummy, ShortFileName: array [0..MAX_PATH + 1] of Char;
  WinIni: string;
  SystemType: TOSVersionInfoA;
begin
  Result := False;

  SystemType.dwOSVersionInfoSize := SizeOf(SystemType);
  GetVersionEx(SystemType);

  if SystemType.dwPlatformId = VER_PLATFORM_WIN32s then
    // nicht unterstützt durch Win32s Systeme :(
    Exit;

  if SystemType.dwPlatformId = VER_PLATFORM_WIN32_NT then
  begin
    // NT/2K/XP/.NET Systeme
    if StrLen(PChar(ExtractFileDrive(aFileName))) < 4 then
      Result := False // Falls Filename z. B. nur aus C:\ besteht
    else
      Result := MoveFileEx(PChar(aFileName), nil, MOVEFILE_REPLACE_EXISTING +
        MOVEFILE_DELAY_UNTIL_REBOOT);
  end else begin
    // 9X/ME Systeme
    GetWindowsDirectory(Dummy, MAX_PATH + 1);
    WinIni := Dummy;
    if AnsiLastChar(WinIni)^ <> '\then
      WinIni := WinIni + '\wininit.ini'
    else
      WinIni := WinIni + 'wininit.ini';

    with TStringList.Create do
    try
      if FileExists(WinIni) then
        LoadFromFile(WinIni);
      if IndexOf('[rename]') < 0 then
        Add('[rename]');
      GetShortPathName(PChar(aFileName), ShortFileName, MAX_PATH + 1);
      Insert(Succ(IndexOf('[rename]')), 'NUL=' + ShortFileName);

      SaveToFile(WinIni);
      Result := True;
    finally
      Free;
    end;
  end;
end;


[b]..und hier mein Löschbutton und der Funktions aufruf![/b]

var
  File2Kick: String; // Pfad der Datei
begin
  opendialog1.Execute();
  DeleteFileDuringNextSystemBoot(File2kick);
  messagebox(FoFkicker.Handle,'You must restart Windows! ','INFO',0);
Ich hoffe, dass es dieses Topic auf dem board noch nicht gibt. Sonst schickt mir einfach einen link dazu.
  Mit Zitat antworten Zitat