有没有办法如何在OS X上通过minizip库正确提取符号链接?
通过
提取文件时 status = mz_zip_reader_extract_to_file(&zip_archive, i, output_path, 0);
它是创建的文本文件而不是符号链接。
答案 0 :(得分:1)
似乎minizip根本不处理符号链接。
我找到的唯一方法就是完全靠自己做。逻辑片段:
mz_zip_archive_file_stat file_stat;
mz_zip_reader_file_stat(&zip_archive, i, &file_stat);
mz_uint32 attrFs = file_stat.m_external_attr >> 16;
if ( S_ISLNK(attrFs) )
{
//read text file with link destination
mz_zip_reader_extract_to_mem(&zip_archive, i, (void*)buffer, file_stat.m_uncomp_size, 0) )
...
//create symbolic link manually
boost::filesystem::create_symlink(...);
}
在Windows系统的情况下,必须根据Unix等价物定义S_ISLNK,因为没有为Windows定义S_ISLNK
。