File.SetCreationTimeUtc

21/04/2010 - 08:05 von Matthias Heise | Report spam
Hallo.

Ich hab eine Frage zur Performance bzw. Anzahl der Filesystem IO Zugriffe.
Folgender Code hat im Grunde drei IO Zugriffe. Làsst sich das sinnvoll in
einem using-Block zusammenfassen und somit performanter gestalten?

using (FileStream stream = new FileStream(localFile, FileMode.Create,
FileAccess.Write))
{
stream.Write(data, 0, data.Length);
}

File.SetLastWriteTimeUtc(localFile, newFileInfo.Modified);
File.SetCreationTimeUtc(localFile, newFileInfo.Modified);

Danke im Voraus.

Matthias Heise
 

Lesen sie die antworten

#1 Thomas Scheidegger
21/04/2010 - 12:04 | Warnen spam
Hallo Matthias

im Grunde drei IO Zugriffe.
File.SetLastWriteTimeUtc(localFile, newFileInfo.Modified);
File.SetCreationTimeUtc(localFile, newFileInfo.Modified);




in der Tat weicht .NET hier von der Win32-Vorgabe 'SetFileTime' ab,
welche auf ein offenes File-Handle wirkt, nicht auf expliziten Pfad.
Jeder Aufruf von
File.SetLastXXXTimeUtc
macht die Win32-Sequenz: CreateFile + SetFileTime + CloseHandle.
Was natürlich für Performance sehr negativ ist.
(abgesehen dass Win32-SetFileTime auch alle 3 Zeiten aufs mal veràndern
könnte)


Thomas Scheidegger - 'NETMaster'
http://dnetmaster.net/

Ähnliche fragen