Entwickler-Ecke
Dateizugriff - OpenDialog und bereits geöffnete Dateien
galagher - Di 08.12.09 16:39
Titel: OpenDialog und bereits geöffnete Dateien
Hallo!
Versucht einmal Folgendes:
Setzt einen OpenDialog auf eine Form und wählt die Datei C:\pagefile.sys. Mit der Datei soll zunächst nichts geschehen, es geht nur um den OpenDialog. Wenn man diese Datei wählt und auf Öffnen" klickt, klappt das.
Und nun versucht das mal mit C:\pagefile.sys zusammen mit einer beliebigen anderen Datei, sagen wir C:\hcwclear.txt. Das klappt nicht, da kommt die Fehlermeldung:
Quelltext
1: 2: 3:
| pagefile.sys Die Datei wird bereits verwendet. Wählen Sie einen anderen Namen, oder schließen Sie die Datei in der anderen Anwendung. |
OpenDialog akzeptiert also eine bereits anderweitig geöffnete Datei, wenn man diese allein auswählt. Wenn man mehrere Dateien auswählt, und es ist eine einzige bereits geöffnete Datei dabei, funktioniert das nicht mehr. Warum?
Ich möchte ein Programm schreiben, das beim nächsten Booten geöffnete Dateien löscht, und da brauche ich so etwas!
//Edit: Nicht, dass ich pagefile.sys löschen möchte, das ist nur zum Testen!
Andreas L. - Di 08.12.09 17:28
Eine pagefile.sys hab ich nicht, habs mit hiberfil.sys probiert. Egal ob ich nur diese einzelne Datei oder mehrere auswähle kommt die von dir zitierte Meldung. (Delphi 2009, Win Vista 32Bit)
EDIT: Habs jetzt auch mit pagefile.sys probiert (war auf D:), selbes Verhalten wie mit hiberfil.sys
galagher - Di 08.12.09 17:38
Wie kann man das verhindern? Die Datei soll ja nicht wirklich geöffnet werden, sondern der Dateiname wird in eine Liste eingetragen und dann mit MoveFileEx zum Löschen beim nächsten Booten vorbereitet werden.
Andreas L. - Di 08.12.09 18:39
galagher hat folgendes geschrieben : |
Wie kann man das verhindern? |
Delphi-Quelltext
1:
| OpenDialog1.Options := OpenDialog1.Options + [ofNoValidate]; |
galagher - Di 08.12.09 19:21
Andreas L. hat folgendes geschrieben : |
Delphi-Quelltext 1:
| OpenDialog1.Options := OpenDialog1.Options + [ofNoValidate]; | |
Laut Delphi Hilfe: ofNoValidate Deaktiviert die Prüfung auf ungültige Zeichen in Dateinamen und erlaubt die Auswahl solcher Dateinamen.
Xentar - Di 08.12.09 20:11
Eigentlich dient der OpenDialog doch nur dazu, eine Datei auszuwählen.
Festzustellen, ob diese bereits geöffnet ist, sollte doch eigentlich die aufrufende Prozedur dann machen?
Andreas L. - Di 08.12.09 20:13
Stellt aber ebenfalls die Überprüfung ob eine Datei geöffnet ist ab. Habs getestet :wink:
galagher - Di 08.12.09 20:40
Andreas L. hat folgendes geschrieben : |
Stellt aber ebenfalls die Überprüfung ob eine Datei geöffnet ist ab. Habs getestet :wink: |
Ok, funktioniert bei mir (Win XP, Dekphi 6) auch, aber nur mit Admin-Rechten!
Andreas L. - Di 08.12.09 21:43
galagher hat folgendes geschrieben : |
aber nur mit Admin-Rechten! |
Bei mir auch als normaler User :P :D
galagher - Di 08.12.09 22:02
Bei mir funktioniert es jetzt auch, wenn ofNoValidate auf False gesetzt ist, wenn ich das Programm als Admin starte. Als User funktioniert es weder mit True noch False.
galagher - Fr 11.12.09 19:01
Habe mir jetzt einen eigenen Öffnen-Dialog gebastelt, mit den guten, alten Win3.1-Komponenten. (Gibt's da nichts moderneres, das genauso funktioniert?)
Der Vorteil ist, ich kann den Dialog speziell anpassen. Das Problem ist also gelöst - danke!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!