2013-02-27 7 views
6

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?

+0

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

+0

Was für ein Server ist das? Beachten Sie, dass einige Dateisysteme die Erstellungszeit nicht unterstützen. –

+1

Dies ist nicht normal, etwas ist im Netzwerk-Redirector ernsthaft wonky. Serverseitig. –

Antwort

1

Ich weiß, dass dies eine alte Frage ist, aber ich stieß darauf, während ich einige Bilddateien auf meinem Linux-Server zu Hause organisierte (sehr alte NAS-Box). Die Zeit für die Dateierstellung war die Zeit für das Kopieren der Datei und ich fand heraus, dass das Problem auf das EXT3 Linux-Dateiformat zurückzuführen war, das es nicht über irgendeine Art der gemeinsamen Nutzung (NFS und SAMBA) unterstützte. Das Verschieben der Dateien in ein EXT4- und XFS-Dateisystemformat löste die Probleme für mich.

Verwandte Themen