Nach meinem Verständnis des Windows-Dateisystems kann ein Programm eine Datei gemäß ihrem Pfad lesen. Wenn dieser Pfad geändert wird, kann das zum Lesen dieser Datei verwendete Programm dies nicht mehr. Dies würde bedeuten, dass für alle Programme im Windows-System, die von einer Datei abhängen, die Folgen des Löschens und Umbenennens einer Datei gleich sein müssen.
Der spezielle Fall, von dem diese Antwort abhängt, ist ein eingebettetes System, das unter Windows 2000 ausgeführt wird. Das Handbuch des Dienstanbieters führt den Benutzer zum Löschen der Dateien in einem Ordner. Als vorsichtiger Benutzer habe ich die Dateien einfach in einen Pfad namens "folder_backup" kopiert und den Ordner leer gelassen.
Während dieses Vorgangs hat sich das System zurückgebildet und konnte nicht richtig funktionieren. Daher wurde der Dienstanbieter angerufen, der das Handbuch geschrieben hat. Ihre Diagnose war, dass die Datenbank beschädigt war, weil zwei Datenbanken parallel waren und auf "folder_backup" als zweite Datenbank verweisen. Nach meinem Verständnis wären die Dateien in "D: / folder_backup" inert gewesen, außer im Ausnahmefall eines Programms, das nach Ordnern sucht, die mit "Ordner" beginnen oder alle Inhalte in der Datei "D: /" lesen.
Auf welche nicht undurchsichtige Weise kann ein System noch auf eine umbenannte Datei zugreifen, die sonst unmöglich gewesen wäre, wenn die Datei gelöscht worden wäre?
quelle
Antworten:
Wirklich die Qual der Wahl.
Verteiltes Link-Tracking.
Harte Links.
OpenFileById.
MFT-Datensatznummern.
... und wahrscheinlich mehr. Ob es für eine Anwendung sinnvoll ist, eines dieser Dinge zu tun, ist eine andere Frage, aber es ist sicherlich möglich .
quelle
Auf eine umbenannte Datei kann weiterhin von einem anderen Programm zugegriffen werden.
Ein Weg, auf den ein anderes Programm weiterhin auf eine umbenannte Datei zugreifen kann, ist eine Umgebungsvariable, die von demselben Programm, das die Datei umbenannt hat, auf den neuen Dateipfad gesetzt wird. Das Programm, das auf diese Datei zugreifen möchte, verwendet die Umgebungsvariable für den Dateipfad anstelle eines festen intern festgelegten Dateipfads.
Eine andere Möglichkeit besteht darin, dass die Datei die einzige Datei in einem bestimmten Ordner ist. Das Programm, das diese Datei verwenden möchte, weiß, dass sich niemals mehr als eine Datei in diesem bestimmten Ordner befinden sollte, weiß jedoch, dass sich der Dateiname möglicherweise ändert, das Verzeichnis, in das es gehört, jedoch gleich bleibt. Das Programm verwendet einfach nur die erste Datei, die es in diesem Ordner finden kann. Dies sollte immer diese Datei sein. Dies ist jedoch keine gute Vorgehensweise, und Sie sind mit einer Umgebungsvariablen besser dran.
Andernfalls werden Sie von einigen Programmen automatisch aufgefordert, die Datei zu suchen, bevor Sie den Code weiter ausführen
quelle