Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Datei im Verzeichnis geöffnet/gesperrt? (https://www.delphipraxis.net/184773-datei-im-verzeichnis-geoeffnet-gesperrt.html)

Sir Rufo 20. Apr 2015 15:08

AW: Datei im Verzeichnis geöffnet/gesperrt?
 
Zitat:

Zitat von bernau (Beitrag 1298548)
Ich kann natürlich nicht sicherstellen, ob die Dateien korrekt gesperrt sind.

Aber erst mal wollte ich auf die schnelle testen, ob noch Dateien geöffnet sind. Das mit dem Verzeichnis umbenennen war nur so eine Idee. Nicht wirklich gut.

Dann muss ich wohl doch mal jede Datei testen. Schade. Dachte es gibt eine einfach "schnelle" Möglichkeit.

Du prüfst doch indem du auf alle betroffenen Dateien eine Sperre legst. Nur so kannst du sicherstellen, dass dieses Prüfergebnis am Ende auch noch einen Sinn hat.

bernau 20. Apr 2015 15:50

AW: Datei im Verzeichnis geöffnet/gesperrt?
 
So. habe es jetzt so programmiert, daß jede Datei geprüft wird. Ging doch schneller als ich dachte. ;-)

Leider kann man nicht prüfen, ob eine EXE-Datei gestartet ist. Aber auch das bekomme ich hin.


Danke für euere Antworten.

himitsu 20. Apr 2015 15:51

AW: Datei im Verzeichnis geöffnet/gesperrt?
 
Zitat:

Zitat von bernau (Beitrag 1298571)
Leider kann man nicht prüfen, ob eine EXE-Datei gestartet ist.

Nicht?



Siehe CodeLib, SuFu oder Google :stupid:

bernau 20. Apr 2015 16:19

AW: Datei im Verzeichnis geöffnet/gesperrt?
 
Zitat:

Zitat von himitsu (Beitrag 1298572)
Zitat:

Zitat von bernau (Beitrag 1298571)
Leider kann man nicht prüfen, ob eine EXE-Datei gestartet ist.

Nicht?

Nicht mit dem Codeschnipsel vom zweiten Beitrag und auch nicht mit dem Öffnen eines Filestreams welcher im Exclusivmodus geöffnet wird.


Zitat:

Zitat von himitsu (Beitrag 1298572)
Siehe CodeLib, SuFu oder Google :stupid:

Das werde ich noch machen. Deshalb habe ich geschrieben "Auch das bekomme ich noch hin". :lol:

Aber dennoch anscheinend nicht so einfach, wenn die Exe-Datei sich auf einem Server befindet und nicht auf dem lokalen Rechner. Zu dem Thema ist die Sufu nicht so ergiebig.

himitsu 20. Apr 2015 16:28

AW: Datei im Verzeichnis geöffnet/gesperrt?
 
Es kommt auch darauf an, was du prüfen willst.
  • Ist eine Anwendung gestartet? (EXE-Name, Caption oder anderer Marker, wie z.B. ein Mutex)
  • In welcher gestarteten Anwendung ist die Datei geöffnet?

Und bei Extern brauchst du entweder jemanden, der das lokal prüft, oder einen Zugangspunkt der solche einen Status liefert. (in diesem Fall wohl eher Ersteres)

bernau 20. Apr 2015 17:20

AW: Datei im Verzeichnis geöffnet/gesperrt?
 
Zitat:

Zitat von himitsu (Beitrag 1298579)
Es kommt auch darauf an, was du prüfen willst.

Auf einem Fileserver liegen in einem Verzeichnis und weiteren Unterverzeichnissen verschiedene Programme und Daten. Die Programme und die Daten sollen in regelmäßigen Abständen aktualisiert werden. Die Programme werden direkt von den Arbeitsstationen gestartet. Ich muss nun prüfen, ob ein Programm gestartet ist, damit es ersetzt werden kann.

mm1256 20. Apr 2015 18:12

AW: Datei im Verzeichnis geöffnet/gesperrt?
 
In diesem Fall ist das Umbenennen des Verzeichnisses vor der Aktualisierung doch eine sehr elegante Lösung. 8-)

Wenn das Umbenennen funktioniert hast du gleichzeitig eine Sperre, dass während der Aktualisierung kein anderer User im Netz versucht ein Programm zu starten.

himitsu 20. Apr 2015 19:53

AW: Datei im Verzeichnis geöffnet/gesperrt?
 
http://www.pcwelt.de/tipps/Ordner_fr...7-7565841.html
Dort könnte man die Freigaben auch tennen, aber die offenen Programme knallen dann womöglich, wenn sie danach auf diese Datei zugreifen wollen und im Zielsystem der Teil nicht mehr im Cache liegt.

Man kann Dateien auch umbenennen (z.B.
Delphi-Quellcode:
.del
anhängen) und dann die neue Datei an diese Stelle legen.
Auch das knallt natürlich, wenn ein noch geöffnetes Programm auf die neue Datei zugreift und nicht kompatibel damit ist (z.B. bei BPLs).


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:52 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz