Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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.
Empfohlene Aktion
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:
- Für
GnuTarEntry: Verwenden Sie die Eigenschaften GnuTarEntry.AccessTime und GnuTarEntry.ChangeTime. - Für
PaxTarEntry: Verwenden Sie den Konstruktor, der erweiterte Attribute akzeptiert: PaxTarEntry(TarEntryType, String, IEnumerable<KeyValuePair<String,String>>).
Beachten Sie jedoch, dass durch das Festlegen dieser Felder eine Tar-Datei erstellt wird, die von vielen Tar-Clients nicht lesbar ist.