tar32.dllでのtar.gz圧縮方法について – プログラミング – Home

通知
すべてクリア

[解決済] tar32.dllでのtar.gz圧縮方法について


きゅあ
 きゅあ
(@きゅあ)
ゲスト
結合: 15年前
投稿: 8
Topic starter  

【開発環境】
VC++2005(.NET)
WindowsXP SP3

tar32.dllを使用した、
tar.gz形式に圧縮書庫化する方法について質問です。

圧縮書庫化後のフォルダ構成が以下のような、
tar.gzファイルを作成したいのです。

【tar.gz形式にしたいファイルとフォルダの構成】

C:\
|
∟aaa
|
∟bbb
|
∟File_1
|
∟ccc
|
∟File_11
|
∟File_12

【tar.gzファイルのフォルダ構成(理想)】

/(root)
|
∟File_1
|
∟ccc
|
∟File_11
|
∟File_12

フォルダcccをフォルダ毎圧縮書庫化したいのですが、
プログラムで、tar()に渡すパラメータが分かりません。

たとえば、以下のtarを呼び出すコードでは、
tar(zcf C:\\test\\hoge.tar.gz File_1 C:\\aaa\\bbb\\ccc);

以下のような結果になってしまいます。

【tar.gzファイルのフォルダ構成(現実)】

/(root)
|
∟File_1
|
∟C:
|
∟aaa
|
∟bbb
|
∟ccc
|
∟File_11
|
∟File_12

tar32.dllのSDKドキュメントも見ましたが、
このケースに該当する例が見当たりませんでした。

初歩的な質問かもしれませんが、
ご教授お願いいたします。


引用未解決
トピックタグ
瀬戸っぷ
 瀬戸っぷ
(@瀬戸っぷ)
ゲスト
結合: 18年前
投稿: 178
 

カレントディレクトリを C:\aaa\bbb にした後で、
tar(zcf C:\\test\\hoge.tar.gz File_1 ccc);
で行けませんか?


返信引用
AR2
 AR2
(@ar2)
Estimable Member
結合: 5年前
投稿: 110
 

 きゅあさんの記述では絶対パス格納になっているので、瀬戸っぷさんのおっしゃる通
り、カレントを移動する必要があります。
 統合アーカイバプロジェクトでは、これを基準ディレクトリという表現を使われてい
たと思いますが、これを省略せず、アーカイブ対象はここから相対パスで指定しなけれ
ばなりません。

 統合アーカイバプロジェクトのDLLはUNLHA32.DLLの影響を強く受けていますので、考
え方などはそちらを参考にすると良いと思います。


返信引用
きゅあ
 きゅあ
(@きゅあ)
ゲスト
結合: 15年前
投稿: 8
Topic starter  

レスが遅くなり、申し訳ありません。
瀬戸っぷさん、ARさん、ありがとうございました。

瀬戸っぷさんにご提示頂いた方法でうまくいきました。

tar(zcf C:\\test\\hoge.tar.gz File_1 ccc);

カレントディレクトリの移動を入れることについては、
tar処理の前で、カレントディレクトリはC:\aaa\bbbであることを確認しているため、
今回の場合はtarの第2引数を相対パスに変更するだけで上手くいきました。

もうちょっと勉強しないといけませんね ^^;


返信引用
AR2
 AR2
(@ar2)
Estimable Member
結合: 5年前
投稿: 110
 

 ちょっと誤解されるような書き方をしてしまったので、私が使っている実例も挙げて
おきます。
 「e:\d.sql」というファイルをgzip圧縮、圧縮率9を指定して相対パス指定格納をする
例です。

 私が紹介した基準ディレクトリとは、E:\の部分を指します。
 tarコマンドのコマンドラインオプションはあまり意識しないほうがいいかもしれませ
ん。

-c -v -z9 --use-directory=1 -f E:\d.tgz -o E:\ @C:\<レスポンスファイルの
フルパス>
レスポンスファイルの中身 = d.sql


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました