Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   D2007, SHFileOperation, fo_delete, Fehler 1026 (https://www.delphipraxis.net/154622-d2007-shfileoperation-fo_delete-fehler-1026-a.html)

hoika 18. Sep 2010 06:44

D2007, SHFileOperation, fo_delete, Fehler 1026
 
Hallo,

folgender Code gibt mir bei einem leeren Verzeichnis 1026 zurück, warum ?

Delphi-Quellcode:
function DelTree(const theDirName: String): Boolean;
var
  SHFileOpStruct : TSHFileOpStruct;
  DirBuf        : array [0..255] of char;
  sDirName      : String;
  iResult       : Integer;
begin
  Result:= False;

  sDirName:= theDirName;
  if Copy(sDirName,1,1)<>'"' then
  begin
    sDirName:= '"'+sDirName+'"';
  end;

  try
    Fillchar(SHFileOpStruct,Sizeof(SHFileOpStruct),0) ;
    FillChar(DirBuf, Sizeof(DirBuf), 0 ) ;
    StrPCopy(DirBuf, sDirName+#0) ;
    with SHFileOpStruct do
    begin
      Wnd := 0;
//      pFrom := @DirBuf;
      pFrom := PChar(sDirName+#0);
      wFunc := FO_DELETE;
//    fFlags := FOF_ALLOWUNDO;
      fFlags := FOF_NOCONFIRMATION or FOF_SILENT;
    end;
    iResult:= SHFileOperation(SHFileOpStruct);
    Result := iResult=0 ;
  except
  end;
end { DelTree } ;

Danke


Heiko

Luckie 18. Sep 2010 11:41

AW: D2007, SHFileOperation, fo_delete, Fehler 1026
 
Und wie lautet der Klartext zu dem Fehlercode?

Satty67 18. Sep 2010 11:54

AW: D2007, SHFileOperation, fo_delete, Fehler 1026
 
System-fehler (1026) Datei kann nicht gelöscht werden.

Ein Ordnername wird evtl. als Dateiname interpretiert, weil kein passender Ordner mit dem Namen vorhanden ist?

Björn Ole 18. Sep 2010 13:26

AW: D2007, SHFileOperation, fo_delete, Fehler 1026
 
Ich bekomme Fehler 124: The system call level is not correct.
Wenn ich
Delphi-Quellcode:
pFrom := PChar(theDirName + #0);
setze, geht es. Liegt wohl an den " ".

hoika 18. Sep 2010 19:46

AW: D2007, SHFileOperation, fo_delete, Fehler 1026
 
Hallo,

Zitat:

setze, geht es
nein, geht nicht ...

Ich schreibe das jetzt um
und vergesse SHFileOperation.

Das Verzeichnis hat übrigens Leerzeichen,
viell. ist das das Problem (deshalb auch die "").


Heiko

Björn Ole 18. Sep 2010 19:59

AW: D2007, SHFileOperation, fo_delete, Fehler 1026
 
Mein Testordner enthielt ebenfalls ein Leerzeichen.
System: Windows 7 64bit

Satty67 18. Sep 2010 20:07

AW: D2007, SHFileOperation, fo_delete, Fehler 1026
 
Zitat:

Zitat von hoika (Beitrag 1050482)
(deshalb auch die "")

Weglassen, die werden laut Hilfe nicht erwartet.

Einzelne Datei mit #0 abschließen, Dateiliste mit #0 trennen und mit #0#0 abschliessen.

Durch die " hat er keinen passenden Ordner/Datei gefunden. (vermute ich mal, passt aber dann zu Fehler 1026)

hoika 18. Sep 2010 20:32

AW: D2007, SHFileOperation, fo_delete, Fehler 1026
 
Hallo,

habe jetzt ZeroMemory verwendet und den abschließenden Backslash entfernt
und es geht.


Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:07 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