現在、ZipFile クラスを使用してzip圧縮を行うアプリケーションを作成中です。
現在何%終わっているか、プログレスバーに表示したいです。
タイマーを使って別スレッドで監視することを考えています。
どうすれば良いですか?
試したこと
ZipFile.CreateFromDirectory
というたった1つの関数を呼んでいる間にその進捗率を計算する手段が全くわかりません。
追記
CompressionLevelは何も指定していません。
デフォルトの設定を調べる方法を教えて下さい。
追記
ZipFileクラスだとフォルダを丸ごと圧縮することしか出来ません。
フォルダ内のファイルごとに圧縮したいため、一旦そのファイル名の拡張子を取った名前のフォルダにコピーしてからフォルダを圧縮するという無駄な作りになっています。
入力をフォルダではなくファイルにしたい場合に便利で効率の良いAPIやクラスはありませんか?
.NET Frameworkのバージョンは?(.NET Frameworkのバージョンによって実装方法が複数ある為)
自分でやったこと、やった上で何が分からないのでしょうか?
「C# プログレスバー」等のキーワードで検索するとサンプル込みで
参考になるサイトが幾つも見つかりますが、探してみましたか?
プログレスバーの作り方は知ってるので別にいいです。
問題はZipFile.CreateFromDirectoryというたった1つの関数を呼んでいる間の進捗率を計算する手段がないものかと思案しています。
[質問するときのヒント] https://teratail.com/help/question-tips
この質問内容読んで「プログレスバーの作り方分かってそうだね。ちゃんも探してるんだね」と感じる人はいないでしょうね。
見ている人にあなたの友人や会社の人などがいればいいですけど。
現状ややったことが見て取れる情報が拙い文章説明だけでは不足しかありません。追記してください。
ZipFile.CreateFromDirectoryを呼んでzipファイルを作ることは出来ました。
関数の始まりと終わりの間の進捗率を計算する手段を教えて下さい。
どんな実装(コード)か不明な他人には応えられないかと。
どうしてですか?
System.IO.Compression名前空間にはZipFile以外のクラスもあるのですが、他のクラスの機能は確認したのですか?
teratailに関わらず、ネットのQAサイトでは質問者が分かっている情報でも
質問に書かれていない限り、第三者である回答者には分からないです。
その為、質問者は第三者が回答する為に必要な情報を質問に書かないと
求める回答が得られる可能性はどうしても低くなります。
その辺のこと含め、radianさんが張ったURLに一通り書いてありますが、
目を通されましたでしょうか?
そこは気にしてません。
名前とアカウント作成日からして、なんか愉快犯の捨てアカっぽい臭いがしてきましたね。
回答3件
あなたの回答
tips
プレビュー