single.php

C# WinUI3でZipファイルの内容を取得する方法

C# WinUI 3アプリを作っていく途中で、調べたことを忘録的に投稿します。今回はWinUI3プロジェクトでZip形式の圧縮ファイルの内容を取得する方法です。

[ZipArchiveEntry]で取得

WinUI3プロジェクトの場合、[System.IO.Compression]アセンブリを追加すると、比較的簡単に、Zip形式のファイルにアクセスが可能です。

例えば、Xamlを修正して適当なボタンを配置してイベントハンドラーをを追加します。

<Grid>
  <Button Click="Button_Click">Open</Button>
</Grid>

追加したイベントでFileOpenPickerで選択したZipファイルの内容が取得できます。

private async void Button_Click(object sender, RoutedEventArgs e)
{
  IntPtr hWnd = WinRT.Interop.WindowNative.GetWindowHandle(this);
  FileOpenPicker picker = new Windows.Storage.Pickers.FileOpenPicker();
  InitializeWithWindow.Initialize(picker, hWnd);
  if(picker != null)
  {
    picker.FileTypeFilter.Add(".zip");
    StorageFile sourcefile = await picker.PickSingleFileAsync();
    if (sourcefile != null)
    {
      System.IO.Compression.ZipArchive zipArchive = System.IO.Compression.ZipFile.OpenRead(sourcefile.Path);

      foreach (ZipArchiveEntry entry in zipArchive.Entries)
      {
        string fileName = entry.FullName;
      }
    }
  }
}

まとめ

今回は、短い記事ですが WinUI3プロジェクトでZip形式の圧縮ファイルの内容を取得する方法について紹介しました。

WinUI3プロジェクトの場合[System.IO.Compression]アセンブリを追加して、Zip形式のファイル内の操作が可能になります。

WinUI 3 アプリでZip形式ファイルの操作をしたい人の参考になれば幸いです。

スポンサーリンク

最後までご覧いただき、ありがとうございます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です