Ist Datei geöffnet? [Erledigt]
Moderator: Moderatoren
- Jan
- Marvin
- Beiträge: 14658
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Ist Datei geöffnet? [Erledigt]
Kann man einfach feststellen, ob eine Datei gerade durch irgendein anderes Programm geöffnet ist?
Jan
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9367
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Ist Datei geöffnet?
Meinst Du Tabellen? Das geht sehr simpel (und ginge auch noch eleganter):
Code: Alles auswählen
FUNCTION CheckIsInUse(cTable)
USE (cTable) EXCLUSIVE NEW
IF NetErr()
RETURN .T.
ENDIF
CLOSE
RETURN .F.
Herzlich,
Tom
Tom
- Jan
- Marvin
- Beiträge: 14658
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Ist Datei geöffnet?
Hallo Tom,
neenee, nicht so einfach, bitte . Es geht mir nicht um eine Datenbank, sondern um irgendwelche anderen Dateien. Also pdf, Text, oder sonstwas.
Jan
neenee, nicht so einfach, bitte . Es geht mir nicht um eine Datenbank, sondern um irgendwelche anderen Dateien. Also pdf, Text, oder sonstwas.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: Ist Datei geöffnet?
Einfach löschen - wenn es klappt, war sie nicht geöffnet
Viele Grüße,
Martin
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Bertram Hansen
- Foren-Moderator
- Beiträge: 1015
- Registriert: Di, 27. Sep 2005 8:55
- Wohnort: 51379 Leverkusen
- Hat sich bedankt: 28 Mal
- Danksagung erhalten: 20 Mal
- Kontaktdaten:
Re: Ist Datei geöffnet?
Aber vorher bitte eine Kopie anlegen!
Spaß beiseite, wie wäre es mit FOPEN(cFile, FO_EXCLUSIVE) ?
Spaß beiseite, wie wäre es mit FOPEN(cFile, FO_EXCLUSIVE) ?
Gruß Bertram
http://www.tobax.de
Mitglied der XUG Cologne
Mitglied der XUG Osnabrück
Beisitzer des Deutschsprachige Xbase-Entwickler e.V.
Solange Kakaobohnen an Bäumen wachsen ist Schokolade Obst!
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9367
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Ist Datei geöffnet?
Eine Applikation, die die Datei tatsächlich öffnet - und nicht etwa nur eine lokale Kopie davon, wie z.B. Acrobat - sollte das Dateiattribut "Read Only" setzen, das man m.E. über die Tools-Funktion FileAttr() (FA_READONLY) abfragen kann. Aber. Viele Apps tun das nicht - aus gutem Grund, denn ein Absturz der Workstation, die das gemacht hat, würde das Öffnen dieser Datei auf ewig verhindern. Word zum Beispiel murkst mit einem Flag-File herum, das dem Dateinamen entspricht, aber als erste zwei Zeichen Tilde-Dollar enthält (diese Datei wird "hidden" angelegt). Ähnliches macht Excel. Verlässlich ist nichts davon. Insofern hat Martins Idee durchaus etwas für sich: Wenn es gelingt, die Datei zu löschen oder zu überschreiben, war sie möglicherweise nicht geöffnet. Allerdings sollte man bei dieser Methode dafür sorgen, dass das Original stantepede wieder entsteht.
Herzlich,
Tom
Tom
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Ist Datei geöffnet?
Computerverwaltung -> geöffnete Dateien ... aber du willst es sicherlich aus deiner Xbase++ Application ( Setup ? ) machenJan hat geschrieben:Kann man einfach feststellen, ob eine Datei gerade durch irgendein anderes Programm geöffnet ist?
Ich müsste mal bei WMI nachsehen welche der Functionen das machen könnte ... wenn du einen Tip hast könnte ich den "Source" dazu schnell "generieren"
gruss by OHR
Jimmy
Jimmy
- Jan
- Marvin
- Beiträge: 14658
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Ist Datei geöffnet?
Hallo,
die Idee mit FOpen() werde ich mal versuchen. Hört sich gut an.
Jan
die Idee mit FOpen() werde ich mal versuchen. Hört sich gut an.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Markus Walter
- Programmier-Gott
- Beiträge: 1018
- Registriert: Di, 24. Jan 2006 10:22
- Wohnort: Saarland
Re: Ist Datei geöffnet? [Erledigt]
Hallo Jan,
fopen im exclusiv-Modus ist sicher ein guter Ansatz, aber...
das Gelingen hängt aus meiner Sicht auch immer von den "Zugriffs-Konkurenten" ab und von der konkreten Situation. Nicht alle Programme halten eine Datei physikalisch geöffnet während sie die "Datei bearbeiten".
Nehmen wir mal folgenden Beispiel-Code eines Fremdprogrammes:
Hier wäre zwischen dem Lesen und Schreiben die Datei nicht geöffnet, also würde in diesem Zeitfenster eine Überprüfung mit fopen-exclusiv gelingen, allerdings würde später ggf. das Konkurrenz-Programm abstürzen, hängen oder was auch immer (wenn Du die Datei dann noch geöffnet hast) oder Deine Änderungen überschreiben (wenn Du die Datei wieder geschlossen hast...
Aber eine Lösung für solche Fälle ist schwierig bis unmöglich.
fopen im exclusiv-Modus ist sicher ein guter Ansatz, aber...
das Gelingen hängt aus meiner Sicht auch immer von den "Zugriffs-Konkurenten" ab und von der konkreten Situation. Nicht alle Programme halten eine Datei physikalisch geöffnet während sie die "Datei bearbeiten".
Nehmen wir mal folgenden Beispiel-Code eines Fremdprogrammes:
Code: Alles auswählen
cText := memoread("test.txt")
... hier ein längerer Vorgang, der den Dateiinhalt ändert
memowrit("test.txt", cText
Aber eine Lösung für solche Fälle ist schwierig bis unmöglich.
Gruß
Markus
Mitglied der XUG Saarland-Pfalz
Markus
Mitglied der XUG Saarland-Pfalz
- Jan
- Marvin
- Beiträge: 14658
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Ist Datei geöffnet? [Erledigt]
Hallo Markus,
so wie Tom es zu einfach gesehen hat, so siehst Du das (zum Glück) zu kompliziert. In meinem Fall geht es darum, das ich eine pdf erstelle, und dabei das gesamte Programm sich ins Nirwana verabschiedet, wenn diese pdf gerade geöffnet ist. Ich muß also einfach nur über den Ansatz von Bertram ein exklusives Öffnen versuchen. In meinem Fall reicht das schon aus.
Abgesehen davon denke ich mal, das es eher ungewöhnlich ist, eine Datei während des lesens nicht geöffnet zu halten.
Jan
so wie Tom es zu einfach gesehen hat, so siehst Du das (zum Glück) zu kompliziert. In meinem Fall geht es darum, das ich eine pdf erstelle, und dabei das gesamte Programm sich ins Nirwana verabschiedet, wenn diese pdf gerade geöffnet ist. Ich muß also einfach nur über den Ansatz von Bertram ein exklusives Öffnen versuchen. In meinem Fall reicht das schon aus.
Abgesehen davon denke ich mal, das es eher ungewöhnlich ist, eine Datei während des lesens nicht geöffnet zu halten.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Markus Walter
- Programmier-Gott
- Beiträge: 1018
- Registriert: Di, 24. Jan 2006 10:22
- Wohnort: Saarland
Re: Ist Datei geöffnet? [Erledigt]
Ich bin dafür bekannt, vieles zu kompliziert zu sehen...Jan hat geschrieben:Hallo Markus,
so wie Tom es zu einfach gesehen hat, so siehst Du das (zum Glück) zu kompliziert.
Optimist, versuch doch mal z. B. Windows-Notepad...Jan hat geschrieben: Abgesehen davon denke ich mal, das es eher ungewöhnlich ist, eine Datei während des lesens nicht geöffnet zu halten.
Jan
Gruß
Markus
Mitglied der XUG Saarland-Pfalz
Markus
Mitglied der XUG Saarland-Pfalz