
Windows2000 VB6.0で開発をしています。
7-ZipのAPIを使用してフォルダを圧縮しています。
そのときのコマンドは下記の通りです。
"a -r -tzip -mx "XXX.zip" "XXX\" *.*
圧縮もとのXXXフォルダの中には
3つのフォルダが入っていて、
そのうち一つのフォルダにはファイルが
1つも入っていません。
上のコマンドをプログラムで実行させて、
XXX.zipファイルを作成後
圧縮元となるフォルダを削除すると、
なぜか、ZIPファイルを展開したときに、
圧縮されているはずの3つのフォルダのうち、
ファイルの入っていないフォルダだけ消えて
フォルダが2つになっています。
中身が空のフォルダも残して
フォルダの構成はそのままで圧縮したいので、
フォルダが消えてしまって、困っています。
ちなみに7-Zipのソフトで実行すると、
フォルダは消えません。
7-zipのコマンドで更新オプションの部分が怪しく、
「-up2q2」など追加して色々ためしているのですが、
なかなかうまくいきません(涙)
どなたか、解決につながりそうな情報をお持ちでしたら、
どうか、教えてください。
よろしくお願い致します。
No.1ベストアンサー
- 回答日時:
>どなたか、解決につながりそうな情報をお持ちでしたら、
>どうか、教えてください。
7zに対応したDLLは色々あり、質問文でどのDLLを使用した場合について述べているか不明な為、回答は不可能。
開発者の思想の違いにより「空のフォルダは書庫内に残さない」「空のフォルダは圧縮しない」「空のフォルダは展開時に新規作成しない」と考える開発者と、真逆の考え方をする開発者が居る。
もちろん、どちらが正しいとは言えないが「空フォルダが事前に用意されてないと正常に動作しないのはアプリの不具合であり、空フォルダが必要ならアプリが起動後にフォルダの有無について責任を負うべきで、書庫ツールに空フォルダの生成責任を押し付けるな」と言うのが、現在の主流。
「書庫に空フォルダが出来てしまう」「書庫に空フォルダがあると展開時に空フォルダを作ってしまう」のを「明らかなバグである」と公言する開発者も居る。
因みに、書庫ソフトによっては、DLLを呼ばずにソフト内部ですべて処理するソフトもあるので、DLLとソフトで圧縮と解凍の挙動が異なる場合がある。
「DLLは幾つかある」ので「使用目的と開発思想が一致したDLL」を探して使用しよう。
この回答への補足
すみません、自己レスです。
a -r -tzip -mx "C:\aaa.zip" "C:\aaa\" *.*
↓
a -r -tzip -mx "C:\aaa.zip" "C:\aaa\*"
にして、解決しました。自分で
「全ての『ファイル』を圧縮する」と指定しておきながら、
『フォルダ』が圧縮されずに悩んでいました・・・。
私の、注意力が散漫でした・・・。
これで、解決しました。ありがとうございました!
ご解答ありがとうございました。
>7zに対応したDLLは色々あり、質問文でどのDLLを使用した場合について述べているか不明な為、回答は不可能。
⇒「7-zip32.dll」を使用しています。言葉足らずですみません。
>もちろん、どちらが正しいとは言えないが「空フォルダが事前に用意されてないと正常に動作しないのはアプリの不具合であり、空フォルダが必要ならアプリが起動後にフォルダの有無について責任を負うべきで、書庫ツールに空フォルダの生成責任を押し付けるな」と言うのが、現在の主流。
⇒ユーザからの指定でに指定のフォルダ構成でZIPファイルを作成しなくてはならず、
あちらの仕様にあわせるとなると、フォルダが必要となってしまいます。
>因みに、書庫ソフトによっては、DLLを呼ばずにソフト内部ですべて処理するソフトもあるので、DLLとソフトで圧縮と解凍の挙動が異なる場合がある。
⇒ZIP32J.DLLとZIP32.DLLを検討しましたが、ユーザよりDLLを保存するフォルダも指定されいる関係で、これらのDLLではうまくいきませんでした。
決まったフォルダ構成で、ZIPファイルを作成する必要があり、現在検討どのDLLを使用するか検討しているところです。もし、7-zip32.dllで、空のフォルダを圧縮しないのであれば、また、他を当たるしかないですね。
ご解答ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- ノートパソコン パソコンでmp4の動画ファイルを10個くらい(合計20GB)をフォルダに入れて、容量を軽くしてしまお 2 2023/02/06 02:08
- その他(セキュリティ) PDFファイルのパスワード設定について 1 2022/06/25 10:10
- PDF PDFファイルの圧縮 1 2022/10/04 13:48
- WordPress(ワードプレス) [BuddyPress]試したいのですが! 3 2022/06/01 13:36
- その他(コンピューター・テクノロジー) 圧縮ファイル 解凍すると中身が消える? 3 2022/05/18 15:21
- Android(アンドロイド) androidでzip圧縮してから転送できるファイラー 3 2022/12/11 10:22
- 画像編集・動画編集・音楽編集 画像の一括圧縮 1 2022/12/02 21:56
- Google Drive USB内の圧縮フォルダが開けません。教えて下さい! 1 2022/07/26 18:44
- Android tar.ファイルのインストールについて知りたいです 2 2022/07/23 15:34
- その他(プログラミング・Web制作) pythonでDepixを起動 5 2022/12/18 08:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
C ファイル出力で、フォルダが...
-
デスクトップの画像をhtmlに表...
-
VBAでファイル名を指定して保存...
-
ThisWorkbookがあるフォルダ更...
-
マクロでネットワークドライブ...
-
Windows Python初心者です。 im...
-
(C#)フォルダを指定するダイ...
-
MinGWで正規表現(regex.h)がし...
-
会社のネットワーク上のファイ...
-
バッチファイル フォルダを...
-
【ExcelVBA】一覧表の記載に従...
-
VBScriptでのフォルダ指定ダイ...
-
【マクロ】ファイル名の日付に...
-
Excelで指定したフォルダに保存...
-
カレントフォルダって?
-
VBA 最新のフォルダ取得
-
ExcelVBAでフォルダへのハイパ...
-
フォルダの場所を可変にしたい...
-
フォルダ選択ダイアログ:ネッ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
会社のネットワーク上のファイ...
-
ファイル名と同名のフォルダを...
-
デスクトップの画像をhtmlに表...
-
VBA 最新のフォルダ取得
-
VBA フォルダ名に特定の文字を...
-
Access VBA で フォルダ権限...
-
ディレクトリ名変更してコピー...
-
excelマクロ 冒頭3文字が一致す...
-
Excelで指定したフォルダに保存...
-
パス名に2バイト文字(マルチバ...
-
ExcelのVBAでフォルダ指定がで...
-
excel VBA Dirにて検索したフォ...
-
【マクロ】ファイル名の日付に...
-
VBA フォルダの複数選択ができない
-
Excelのハイパーリンクについて...
-
あるフォルダーのファイルを違...
-
C ファイル出力で、フォルダが...
-
フォルダを開いて、閉じるのプ...
-
ThisWorkbookがあるフォルダ更...
おすすめ情報