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