Warum warnt Windows nicht vor Dateien, die für bestimmte Programme verwendet werden?

5

Wenn Sie eine Textdatei in Notepad unter Windows öffnen, können Sie die Quelldatei in den Papierkorb verschieben oder sogar dauerhaft löschen. Gleiches gilt für WordPad. Warum gibt Windows keine Warnung aus und beschwert sich über das Öffnen von Dateien in einem anderen Programm?

Wenn dieselbe Datei jedoch in Word geöffnet ist und Sie versuchen, die Quelldatei in den Papierkorb zu verschieben oder dauerhaft zu löschen, erhalten Sie von Windows eine Warnung. Die Nachricht selbst kann ein Warnungstyp sein, der Ihnen mitteilt, dass in einem (häufig unbekannten) Programm die Datei geöffnet ist. Bei Word 2013 unter Windows 8.1 handelt es sich um eine Infomeldung, in der genau angegeben wird, in welchem ​​Programm (Word) die Datei geöffnet ist.

Notizblock del Datei Notizblock geöffnete Datei

Warum ist das so? Warum können Sie A) die Quelldatei löschen, während sie in einem Programm geöffnet ist, und B) das Dokument weiter bearbeiten, nachdem die Datei gelöscht wurde? Warum unterscheidet sich das Verhalten in Editor und WordPad von dem von Word?

word del file wort offene datei

Das erste Fallverhalten ist auch in Paint vorhanden. Sie können eine Bitmap-Datei löschen, während sie in Paint geöffnet ist, und weiterarbeiten. Wenn Sie jedoch versuchen, die Datei zu speichern, werden Sie aufgefordert, den Speicherort anzugeben, in dem die Datei gespeichert werden soll. Mit Notepad wird es direkt an demselben Speicherort gespeichert, an dem die ursprüngliche Datei gespeichert wurde, und erhält denselben Namen. Notepad fordert Sie nicht dazu auf.

Ich habe dies nicht unter Windows 7, Vista oder XP getestet. Ich würde jedoch erwarten, dass das Verhalten genau dasselbe ist, und daher würde die Frage wahrscheinlich auch für diese Systeme gelten.

Samir
quelle
2
Es geht darum, ob das Programm die Datei geöffnet hält, während Sie sie bearbeiten oder nicht. Oft tun sie es nicht; Sie lesen eine Kopie in den Speicher und trennen die Dateiverbindung, während Sie sie bearbeiten. Beim Speichern wird eine neue Verbindung zum Datei-Handle hergestellt. Dies liegt am Programm, nicht an Windows.
ƬᴇcƬᴇιᴇ007
In diesem Fall hält Word die ursprüngliche Datei offen. Editor funktioniert nicht? Word erstellt jedoch eine versteckte Kopie der Originaldatei, wenn Sie diese öffnen. Als eine Art temporäre Datei. Ist das nicht die Datei, in der Word Änderungen speichert? Und dann beim Beenden werden die Änderungen mit der Originaldatei zusammengeführt und die temporäre Datei verworfen? In diesem Fall sollte es möglich sein, die Originaldatei zu löschen, während sie in Word geöffnet ist.
Samir
Dies liegt daran, dass Word versucht, Änderungen zu verfolgen, während Sie (oder eine andere Person) sie bearbeiten. Wenn zwei Personen Änderungen vornehmen und anschließend die einzelnen Benutzerdateien wieder zusammenführen, bleiben nur die Änderungen erhalten, die vom zuletzt gespeicherten Editor vorgenommen wurden. Notizblock dagegen ist (zum Beispiel) egal. :)
ƬᴇcƬᴇιʜ007
Ich bin ziemlich überrascht, dass Sie mit Notepad die Datei löschen oder verschieben können, während sie geöffnet ist. Die Anwendung steuert jedoch, dass und in Notepads-Fällen es sich um ein so einfaches Programm handelt, dass sie keine gleichzeitige Kontrolle versucht und die Datei öffnet im Lesemodus und lädt dann den Speicher, wodurch die Lesesperre aufgehoben wird. Weitere Informationen zu den Vorgängen mit anderen Dateien finden Sie hier: superuser.com/questions/848782/…
Frank Thomas
Wendet Notepad also eine Lesesperre an und gibt diese sofort frei, nachdem sie in den Primärspeicher geladen wurde? Dies ermöglicht also ein sogenanntes "interceding update"? Wendet Word eine Schreibsperre an und gibt sie erst frei, nachdem die Datei geschlossen wurde? @FrankThomas Danke für den Link! Trifft es dann zu, dass Word 2013 temporäre Dateien verwendet, die "abgewickelt" wurden? Mit anderen Worten, es funktioniert tatsächlich mit der temporären Datei, die es erstellt, und wenn Änderungen gespeichert werden, wird die Originaldatei gelöscht und der aktuelle Status des Dokuments in einer Datei mit demselben Namen wie das Original gespeichert.
Samir

Antworten:

5

Nicht alle Programme sperren Dateien, wenn sie zum Bearbeiten geöffnet werden

  • Windows verfügt über zwei Arten von Dateisperren, gemeinsame Sperren und exklusive Sperren. Freigegebene Sperren ermöglichen anderen Programmen das Lesen der Datei, verweigern jedoch den Schreibzugriff auf andere Programme. Exklusive Sperren verhindern, dass andere Programme vollständig auf die Datei zugreifen. Ein Programm kann je nach Bedarf eine der beiden Arten von Sperren verwenden.

  • Programme können Dateien zum Bearbeiten "öffnen", aber nicht sperren. Was hier wirklich passiert, ist, dass die Datei in einen Pufferspeicher geladen wird und der Status der Datei erst überprüft wird, wenn sie erneut bearbeitet wird. Eine auf diese Weise "geöffnete" Datei wird nicht wirklich verwendet und kann von anderen Programmen oder vom System selbst frei bearbeitet werden. Auf diese Weise können Sie die nicht vorhandene Datei weiter bearbeiten und in einer neuen Datei speichern.

  • Notepad sperrt die geöffnete Datei nicht. Dies bedeutet, dass die Datei gelöscht werden kann, während sie in Notepad geöffnet ist. Das Programm merkt nicht, dass die Datei gelöscht wird, bis es erneut versucht, sie zu öffnen. Ebenso sperrt Paint die Datei nicht und merkt nur, dass die Datei gelöscht wird, wenn versucht wird, sie zu öffnen oder zu speichern.

  • Word hingegen sperrt Dokumente beim Öffnen ( Bearbeiten: Nach meinen Recherchen ist die Sperre anscheinend nur dann exklusiv, wenn Word aus der Datei liest oder in die Datei schreibt und sie auf andere Weise freigegeben wird ). Daher können Sie Dateien, die derzeit in Word geöffnet sind, nicht löschen.

Das Öffnen einer Datei ohne Sperrung kann riskant sein

  • Obwohl es einfach ist, die Datei nur in den Speicher zu laden und erst dann zu berühren, wenn dies erforderlich ist, ohne sie zu sperren, besteht das Risiko , dass ein Programm die Datei bearbeitet, ohne dass sich die Änderungen in einem anderen Problem widerspiegeln. Dieses andere Programm (möglicherweise Notepad oder Paint) sieht die Änderungen nicht und geht verloren, wenn Sie die Datei in diesem Programm speichern.

  • Dieses Risiko von Rennbedingungen ist der Grund, warum Microsoft Word (und andere Office-Programme) Dateien beim Öffnen sperren. Andererseits sperrt Notepad ++ als Beispiel für eine alternative Lösung geöffnete Dateien nicht, damit andere Programme sie weiterhin bearbeiten können. Es warnt den Benutzer jedoch, wenn festgestellt wird, dass die Datei geändert oder gelöscht wurde, und fragt den Benutzer, ob die Datei von der Festplatte neu geladen oder geschlossen werden soll. Bei beiden Aktionen werden die Änderungen des Benutzers verworfen.

bwDraco
quelle
0

Dies liegt daran, dass einige Programme eine Kopie der Datei erstellen und diese Datei anstelle der Originaldatei öffnen. Auf diese Weise können Sie die Originaldatei fehlerfrei löschen, da sie von keinem Programm verwendet wird.

Behdad
quelle
Ja, das ist mir aufgefallen. Word erstellt beim Öffnen eine temporäre Kopie der Originaldatei. Meinst Du das? In Word kann ich die Originaldatei jedoch nicht löschen, selbst wenn eine temporäre Kopie erstellt wurde.
Samir
Ich habe nichts über eine bestimmte App gesagt. Wenn Sie meinen, die versteckte Datei, die Word beim Öffnen von Dateien erstellt, dient vermutlich der automatischen Sicherung. Tatsächlich wird die Originaldatei geöffnet, da Sie die Datei, wie bereits erwähnt, nicht löschen können, wenn sie in Word geöffnet ist.
Behdad