24#include "AstUtil/FileSystem.hpp"
55static_assert(
sizeof(
TarHeader) == 512,
"TarHeader must be exactly 512 bytes");
84AST_UTIL_API EArchiveFormat aDetectArchiveFormat(StringView path);
89AST_UTIL_API EArchiveFormat aDetectArchiveFormatByMagic(StringView path);
95AST_UTIL_API
bool aIsArchiveFile(StringView path);
105void aResolveArchivePath(StringView source, StringView curdir,
106 std::string& outWorkDir, std::string& outRelativePath);
113errc_t aCopyFile(StringView from, StringView to,
const char* logPrefix);
120AST_UTIL_API errc_t aCopyFileRange(FILE* src, FILE* dst,
size_t size);
127errc_t aCopyDirectoryRecursive(
const fs::path& srcDir,
const fs::path& dstDir,
const char* logPrefix);
132bool aIsCommandAvailable(
const char* cmd);
137errc_t aRunCommand(
const std::string& cmd);
142const char* aTarCompressFlag(EArchiveFormat fmt);
void aTarCalculateChecksum(TarHeader &header)
计算 TAR 头部校验和(供 CompressorImplTar 使用)
定义 ArchiverUtils.cpp:55
EArchiveFormat
归档文件格式枚举
定义 ArchiverUtils.hpp:68
@ eTarBz2
.tar.bz2 / .tbz2
size_t aTarParseOctal(const char *field, size_t len)
将八进制字符串解析为 size_t(供 ExtractorImplTar 使用)
定义 ArchiverUtils.cpp:72
@ eUnknown
未知插值方法
定义 STKEphemerisFileParser.cpp:43
bool aTarIsZeroBlock(const TarHeader &header)
检查头部块是否全为零(归档结束标记)
定义 ArchiverUtils.cpp:88