Wenn ich eine Datei von einer Netzwerkfreigabe lese, wird die Erstellungszeit auf die letzte Schreibzeit aktualisiert. Das verursacht Probleme mit System.Configuration.Configuration, weil es denkt, dass die Datei geändert wurde und daher eine Ausnahme auslöst (die Konfigurationsdatei wurde von einem anderen Programm geändert). Die Problemumgehung wäre, die Erstellungszeit manuell auf die letzte Schreibzeit festzulegen. Aber ich würde gerne wissen, ob das ein bekanntes Problem ist. HierBeim Lesen einer Datei von einer Netzwerkfreigabe wird die Erstellungszeit auf die letzte Schreibzeit gesetzt
ist einiger Testcode:
string filePath = @"X:\SomeFile.txt";
FileInfo fileInfo = new FileInfo(filePath);
DateTime creationTimeBeforeRead = fileInfo.CreationTimeUtc;
FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read);
byte[] result = new byte[fileStream.Length];
fileStream.Read(result, 0, (int)fileStream.Length);
fileStream.Close();
fileInfo.Refresh();
DateTime creationTimeAfterRead = fileInfo.CreationTimeUtc;
Ich habe keine Ahnung, ob das Problem in .net liegt, der Windows-API oder auf der Serverseite. Hat jemand einen Einblick?
Ich habe gerade getestet, es mit dem Editor zu öffnen, und das gleiche Problem tritt auf. Also ich denke, .net ist keine mögliche Quelle für dieses Verhalten. – ctusch
Was für ein Server ist das? Beachten Sie, dass einige Dateisysteme die Erstellungszeit nicht unterstützen. –
Dies ist nicht normal, etwas ist im Netzwerk-Redirector ernsthaft wonky. Serverseitig. –