Freigeben über


GnuTarEntry und PaxTarEntry schließen standardmäßig atime und ctime aus

Ab .NET 10 setzen GnuTarEntry und PaxTarEntry beim Erstellen neuer Einträge die Felder Zugriffszeit (atime) und Änderungszeit (ctime) nicht mehr automatisch. Diese Felder sind in Tar-Einträgen problematisch, da sie nicht von allen Tar-Lesern unterstützt werden. Die Felder bleiben beim Lesen erhalten, und Sie können sie direkt festlegen. Sie werden jedoch nicht auf bestehende Einträge angewendet, die sie ursprünglich nicht hatten, oder bei der Konvertierung von anderen Eintragstypen.

Das Verhalten von TarEntry.ModificationTime ist unverändert. Es wird auf UtcNow für Tar-Einträge initialisiert, die mit einem Konstruktor erstellt wurden, und verwendet die Dateiänderungszeit für Einträge, die aus Dateien erstellt wurden.

Andere kleinere Korrekturen wurden an System.Formats.Tar vorgenommen, um das Roundtripping von TarEntry-Einträgen beim Lesen und Schreiben ohne Änderungen zu priorisieren.

Eingeführt in Version

.NET 10

Vorheriges Verhalten

Zuvor fügten GnuTarEntry und PaxTarEntry immer atime- und ctime-Werte hinzu, wenn neue Einträge erstellt wurden.

Neues Verhalten

Ab .NET 10 wird GnuTarEntry nur festgelegtPaxTarEntry, atime und ctime wenn:

  • Der Eintrag wird aus einem Tar-Archiv gelesen, das diese Felder bereits enthält.
  • Der Benutzer legt sie explizit mithilfe der entsprechenden Eigenschaften fest.

Das Verhalten bleibt TarEntry.ModificationTime unverändert. Es wird auf DateTime.UtcNow für Tar-Einträge initialisiert, die mit einem Konstruktor erstellt wurden, und verwendet die Dateiänderungszeit für Einträge, die aus Dateien erstellt wurden.

Art der einschneidenden Änderung

Dies ist eine Verhaltensänderung.

Grund für Änderung

Diese Änderung wurde vorgenommen, um die Kompatibilität mit anderen Tar-Lesern zu verbessern und um das Round-Trip von Tar-Dateien zu optimieren, ohne dass Änderungen erforderlich sind.

Für die meisten Benutzer ist keine Aktion erforderlich – die meisten Archive haben keine Verwendung für diese Zeitstempel.

Wenn Sie diese Felder festlegen müssen, können Sie die folgenden APIs verwenden:

Beachten Sie jedoch, dass durch das Festlegen dieser Felder eine Tar-Datei erstellt wird, die von vielen Tar-Clients nicht lesbar ist.

Betroffene APIs