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/)
-   -   Delphi Verzeichnis verschieben (https://www.delphipraxis.net/112079-verzeichnis-verschieben.html)

Scarlet 14. Apr 2008 21:28


Verzeichnis verschieben
 
Hallo an alle!

Ich habe ein kleines Problem!
Mit meinem Programm bereite ich ein Verzeichnis zum Drucken vor und dann verschiebe ich dieses in ein anderes Verzeichnis wo es automatisch von einen zweiten Programm gedruckt wird und gesichert wird.
Alles läuft im Netzwerk.

Zum Verschieben verwende ich folgende Funktion:

Code:
function DoFileWork(aOperation: FILEOP_FLAGS; aFrom, aTo: AnsiString; Flags: FILEOP_FLAGS): Integer;
var
  FromPath, ToPath: AnsiString;
  SHFileOpStruct: TSHFileOpStruct;

begin
  ZeroMemory(@SHFileOpStruct, SizeOf(SHFileOpStruct));
  FromPath := aFrom + #0#0;
  ToPath := aTo + #0#0;
  with SHFileOpStruct do
      begin
         Wnd := 0;
         wFunc := aOperation;
         pFrom := PAnsiChar(FromPath);
         if ToPath <> '' then
            begin
               pTo := PAnsiChar(ToPath)
            end
         else
            begin // target available
               pTo := nil;
            end; // target not available
         fFlags := Flags;
      end; // structure
  Result := SHFileOperationA(SHFileOpStruct);
end;
Mein Problem ist, wenn das zweite Programm das Verzeichnis sichert, bleibt ein leeres Verzeichnis stehen und man hat keinen Zugriff mehr drauf bis ich mein Programm beende.
Mein Programm hat ansonsten mit dem zweiten Verzeichnis nur die eine Verbindung beim verschieben.
Kann ich diese Verbindung irgendwie lösen?

Danke im Voraus!!
Kornel

toms 14. Apr 2008 21:38

Re: Verzeichnis verschieben
 
Zitat:

Zitat von Scarlet
Mein Problem ist, wenn das zweite Programm das Verzeichnis sichert, bleibt ein leeres Verzeichnis stehen

Hallo, was verstehst du unter sichern? Wie wird dies gemacht?

Scarlet 14. Apr 2008 21:42

Re: Verzeichnis verschieben
 
Das Verzeichmis wird noch einmal weiter verschoben.

Scarlet 19. Apr 2008 10:03

Re: Verzeichnis verschieben
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

ich habe mittlerweile herausgefunden es liegt nicht an der Verschiebe-Funktion.
Ich verwende in meinem Programm zwei ShellListView Komponenten (eine zum Darstellen von Verzeichnissen die andere für Dateien) ein paar CheckBoxen und zwei Buttons also nichts großartiges (ich bin auch noch ein Anfänger).
Beim Starten des Programms werden schon drei FileHandles geöffnet und beim jeden Verzeichniswechsel kommen weitere dazu aber es werden keine geschlossen.
Das ist meiner Meinung nach das Problem.
Kann mir jemand helfen mit ein paar Tipps, wie ich die Handles wieder Schließe?
Den Quellcode habe ich rangehängt wer etwas Zeit und Lust hat kann es sich anschauen.
Für konstruktive Kritik bin ich sehr dankbar!

Danke im voraus!

Kornel

Scarlet 19. Apr 2008 23:48

Re: Verzeichnis verschieben
 
Hallo,

jetzt bin ich ein Stückchen weiter!! :-D
in ShellListView ist das der Eintrag:

AutoRefresh := True;

der immer neue FileHandles öffnet!

Jetzt habe ich eine Frage, gibt es eine Möglichkeit AutoRefresh zu benutzen und die FileHandles zu steuern, minimieren?

Kornel


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