我正在查看“PhysicsFS”文档并搜索归档和压缩数据的方法,但找不到。是否有可能,如果我可以这样做

最佳答案

PhysicsFS zip 支持

PhysicsFS 支持从安装在它提供的“虚拟文件系统”中任意点的 zip 文件中读取文件。这有效地提供了从 ZIP 文件解压。

但是,PhysicsFS 不支持添加或修改 ZIP 存档的内容。它只允许在其文档中所谓的“写入目录”中写入未压缩的文件。

所以,总结一下:PhysicsFS 仅支持从 ZIP 文件中读取,不支持写入。
对于压缩,您是自己的:如果需要,只需使用外部压缩器压缩所有写入的文件。

PhysicsFS 用法

PhysicsFS here 有一个小教程。

使用非常简单:

// 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();

关于c++ - 如何使用 "PhysicsFS"归档和压缩数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11313581/

10-11 21:27