ZipArchiveEntry.LastWriteTime 属性     
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取或设置最近一次更改 zip 存档中的项的时间。
public:
 property DateTimeOffset LastWriteTime { DateTimeOffset get(); void set(DateTimeOffset value); };public DateTimeOffset LastWriteTime { get; set; }member this.LastWriteTime : DateTimeOffset with get, setPublic Property LastWriteTime As DateTimeOffset属性值
最近一次更改 zip 存档中的项的时间。
例外
尝试设置此属性失败,因为该项的 zip 存档处于 Read 模式。
已尝试将此属性的值设置为早于 1980 年 1 月 1 日 0:00:00(午夜)或晚于 2107 年 12 月 31 日 23:59:58 (午夜的前一秒钟)。
注解
通过调用 CreateEntryFromFile 方法从现有文件创建新条目时, LastWriteTime 该项的 属性将自动设置为上次修改该文件时。 通过调用 CreateEntry 方法以编程方式创建新条目时, LastWriteTime 条目的 属性将自动设置为执行时间。 如果修改条目,如果希望值反映最新更改的时间,则必须显式设置 LastWriteTime 属性。
设置此属性时, DateTimeOffset 该值将转换为特定于 zip 存档的时间戳格式。 此格式支持两秒的分辨率。 允许的最早值为 1980 年 1 月 1 日 0:00:00 (午夜) 。 最新的允许值为 2107 年 12 月 31 日 23:59:58 (午夜前一秒) 。 如果上次写入时间的值无效,则 属性返回默认值 1980 年 1 月 1 日 0:00:00 (午夜) 。
示例
以下示例演示如何打开 zip 存档中的条目、对其进行修改,以及如何将 属性设置为 LastWriteTime 当前时间。
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