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, set
Public Property LastWriteTime As DateTimeOffset
プロパティ値
zip アーカイブ内のエントリが最後に変更された時間。
例外
エントリの zip のアーカイブが Read モードであるため、このプロパティを設定しようとすると失敗しました。
このプロパティを、1980 年 1 月 1 日 0 時 00 分 00 秒より前の値または 2107 年 12 月 31 日 23 時 59 分 58 秒 (午前 0 時の 1 秒前) より後の値に設定しようとしました。
注釈
メソッドを呼び出して既存のファイルから新しいエントリを CreateEntryFromFile 作成すると、 LastWriteTime エントリの プロパティは、ファイルが最後に変更されたときに自動的に設定されます。 メソッドを呼び出してプログラムで新しいエントリを CreateEntry 作成すると、 LastWriteTime エントリの プロパティは自動的に実行時に設定されます。 エントリを変更する場合は、値に最新の変更時刻を LastWriteTime 反映させる場合は、 プロパティを明示的に設定する必要があります。
このプロパティを設定すると、 DateTimeOffset 値は zip アーカイブに固有のタイムスタンプ形式に変換されます。 この形式では、2 秒の解像度がサポートされます。 最も早く使用できる値は、1980 年 1 月 1 日 0:00:00 (午前 0 時) です。 許可される最新の値は、12 月 31 日 23:59:58 (午前 0 時の 1 秒前) の 2107 です。 最後の書き込み時刻の値が無効な場合、プロパティは既定値の 1980 年 1 月 1 日 0:00:00 (午前 0 時) を返します。
例
次の例では、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
適用対象
.NET