Udostępnij za pośrednictwem


ZipArchiveEntry.LastWriteTime Właściwość

Definicja

Pobiera lub ustawia ostatni raz wpis w archiwum zip został zmieniony.

public:
 property DateTimeOffset LastWriteTime { DateTimeOffset get(); void set(DateTimeOffset value); };
public DateTimeOffset LastWriteTime { get; set; }
member this.LastWriteTime : DateTimeOffset with get, set
Public Property LastWriteTime As DateTimeOffset

Wartość właściwości

Ostatni raz wpis w archiwum zip został zmieniony.

Wyjątki

Próba ustawienia tej właściwości nie powiodła się, ponieważ archiwum zip dla wpisu jest w Read trybie.

Tryb archiwum jest ustawiony na Createwartość .

-lub-

Tryb archiwum jest ustawiony na Update i wpis został otwarty.

Podjęto próbę ustawienia tej właściwości na wartość wcześniejszą niż 1980 stycznia 1 0:00:00 (północ) lub późniejszą niż 2107 grudnia 31 23:59:58 (jedna sekunda przed północą).

Uwagi

Podczas tworzenia nowego wpisu z istniejącego pliku przez wywołanie CreateEntryFromFile metody LastWriteTime właściwość wpisu jest automatycznie ustawiana na czas ostatniej modyfikacji pliku. Podczas programowego tworzenia nowego wpisu przez wywołanie CreateEntry metody LastWriteTime właściwość dla wpisu jest automatycznie ustawiana na czas wykonywania. Jeśli zmodyfikujesz wpis, musisz jawnie ustawić LastWriteTime właściwość, jeśli chcesz, aby wartość odzwierciedlała czas ostatniej zmiany.

Po ustawieniu tej właściwości DateTimeOffset wartość jest konwertowana na format znacznika czasu, który jest specyficzny dla archiwów zip. Ten format obsługuje rozdzielczość dwóch sekund. Najwcześniejsza dozwolona wartość to 1980 stycznia 1 0:00:00 (północ). Ostatnia dozwolona wartość to 2107 grudnia 31 23:59:58 (jedna sekunda przed północą). Jeśli wartość ostatniego czasu zapisu jest nieprawidłowa, właściwość zwraca wartość domyślną 1980 stycznia 1 0:00:00 (północ).

Przykłady

W poniższym przykładzie pokazano, jak otworzyć wpis w archiwum zip, zmodyfikować go i ustawić LastWriteTime właściwość na bieżący czas.

using System;
using System.IO;
using System.IO.Compression;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string zipPath = @"c:\example\result.zip";

            using (ZipArchive archive = ZipFile.Open(zipPath, ZipArchiveMode.Update))
            {
                ZipArchiveEntry entry = archive.GetEntry("ExistingFile.txt");
                using (StreamWriter writer = new StreamWriter(entry.Open()))
                {
                    writer.BaseStream.Seek(0, SeekOrigin.End);
                    writer.WriteLine("append line to file");
                }
                entry.LastWriteTime = DateTimeOffset.UtcNow.LocalDateTime;
            }
        }
    }
}
Imports System.IO
Imports System.IO.Compression

Module Module1

    Sub Main()
        Dim zipPath As String = "c:\example\result.zip"

        Using archive As ZipArchive = ZipFile.Open(zipPath, ZipArchiveMode.Update)
            Dim entry As ZipArchiveEntry = archive.GetEntry("ExistingFile.txt")

            Using writer As StreamWriter = New StreamWriter(entry.Open())
                writer.BaseStream.Seek(0, SeekOrigin.End)
                writer.WriteLine("append line to file")
            End Using
            entry.LastWriteTime = DateTimeOffset.UtcNow.LocalDateTime
        End Using
    End Sub

End Module

Dotyczy