1

Windows-次の内部を含むJTarlibを使用して新しいTarファイルを作成しようとしています...

MyTarFile.tar--|
               |--MyFolder--|
                            |--MyFile.zip

MyTarFileのルートにあるフォルダーとzipファイルを使用して作成できますが、そのフォルダーを作成してzipファイルを中に入れる方法がわかりません(そして周りを見回しました)。TarEntryに何を使用するか(Fileオブジェクト)(フォルダー用に1つ、ファイル用に1つ、または両方に1つ)、InputStreamがどのように表示されるかを知る必要があります(私は信じています) zipファイル用に1つだけですが、確かではありません)。既存の形式を模倣するファイルを作成しようとしているので、ファイルを使用するソフトウェアがそのフォルダーを探すため、そのフォルダーを失うという選択肢はありません。タールを塗るかどうかにかかわらず、実際のファイルシステム(これもWindows上にあります)のMyFolderフォルダーにzipファイルを追加できます...動作するものは何でも問題ありません。

フルパスと相対パス(InputStreamにはフルパスが必要なようです)を試しましたが、うまくいきませんでした。ライブラリの切り替え以外のアイデアが不足しています(おそらくJTarはこれをサポートしていません)。

ありがとう!

4

1 に答える 1

2

あなたがすでに書いたものを見ることなく、これが私の最善の答えです。私は JTar に慣れていませんが、彼らのメインページの例を見た後、tar のルートに 1 つのファイルと tar のディレクトリに 1 つのファイルを含む tar を作成する簡単なテスト プログラムを作成しました。あなたがやろうとしているのは信じることです。興味のあるコードは次のとおりです。

TarEntry tarEntry = new TarEntry(new File("/Users/userGuy/Documents/students.xml"),"students.xml");
TarEntry otherTarEntry = new TarEntry(new File("/Users/userGuy/Documents/students2.xml"),"inner-dir/students2.xml");

2 番目の tar エントリは、コンストラクタの引数otherTarEntryとして相対パスでインスタンス化されることに注意してください。これは技術的には名前だけでなく、tar 内のファイルのパスであるため、名前の付いていない引数です。entryNameTarEntry

上記のファイル名の例では、コードは次のようになります。

TarEntry tarEntry = new TarEntry(new File("<path to file>"),"MyFolder/MyFile.zip");
于 2012-12-11T23:32:06.020 に答える