4

「PhysicsFS」のドキュメントを調べて、データをアーカイブおよび圧縮する方法を検索していますが、見つかりません。

4

2 に答える 2

7

PhysicsFS zip のサポート

PhysicsFS は、それが提供する「仮想ファイルシステム」の任意のポイントにマウントされた zip ファイルからのファイルの読み取りをサポートしています。これにより、ZIP アーカイブからの解凍が効果的に提供されます。

ただし、PhysicsFS は、ZIP アーカイブのコンテンツの追加または変更をサポートしていません。ドキュメントで「書き込みディレクトリ」と呼ばれるものに非圧縮ファイルを書き込むことのみを許可します。

要約すると、PhysicsFS は ZIP アーカイブからの読み取りのみをサポートし、書き込みはサポートしていません。圧縮については、自分で行います。必要に応じて、外部のコンプレッサーを使用して、書き込まれたすべてのファイルを圧縮するだけです。


PhysicsFS の使用

ここに PhysicsFS の小さなチュートリアルがあります。

使い方はとても簡単です:

// initialize the lib
PHYSFS_init(NULL);

// "mount" a zip file in the root directory
PHYSFS_AddToSearchPath("myzip.zip", 1);

// set a directory for writing
PHYSFS_setWriteDir(const char *newDir);

// open a file for reading
PHYSFS_file* myfile = PHYSFS_openRead("myfile.txt");

// open a file for writing
PHYSFS_file* myfile = PHYSFS_openWrite("output_file.bin");

// get a file size
PHYSFS_sint64 file_size = PHYSFS_fileLength(myfile);

// read data from a file (decompress only if path is inside a zip mount point)
char* myBuf = new char[file_size];
int length_readed = PHYSFS_read(myfile, myBuf, 1, file_size);

// write data to a file (uncompressed)
char* myBuf = new char[new_file_size];
//...fill myBuf...
int length_writed = PHYSFS_write(myfile, myBuf, 1, new_file_size);

// close a file
PHYSFS_close(myfile);

// deinitialize the lib
PHYSFS_deinit();
于 2012-07-03T17:18:55.317 に答える
-1

「 PhysFS 」を意味していた可能性はありますか。

zipファイルからファイルを読み込むライブラリです。基本的にQuakeエンジンと同じです。

于 2012-07-03T15:55:36.577 に答える