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形式ファイルの操作をしたい人の参考になれば幸いです。
スポンサーリンク
最後までご覧いただき、ありがとうございます。