跳到正文
Yayin Story Studio Yayin Story Studio 项目文档

Visindigo::Utility::VirtualStorage Class

class Visindigo::Utility::VirtualStorage

基于SQLite的虚拟文件存储,以MD5去重并按虚拟路径索引. 详情...

头文件: #include <VirtualStorage>
自以下版本: Visindigo 0.16.0

公开成员函数

(自 Visindigo 0.16.0 引入) VirtualStorage(const QString &dbPath)
qint32 getFileRepeatCount(const QString &path)
qint32 getFileSize(const QString &path)
QString getFileVID(const QString &path)
Visindigo::Utility::JsonConfig listFolder(const QString &folderPath, bool recursive = false)
QByteArray readFile(const QString &path)
QByteArray readFileByVID(const QString &vid)
QString removeFile(const QString &path)
QString removeFileByVID(const QString &vid)
void saveFile(const QString &path, const QByteArray &data)

详细说明

成员函数文档

[since Visindigo 0.16.0] VirtualStorage::VirtualStorage(const QString &dbPath)

dbPath SQLite 数据库文件路径。

构造函数,创建一个虚拟存储对象。若数据库文件不存在则自动创建并初始化表结构。

这个function 从 Visindigo 0.16.0 开始支持。

qint32 VirtualStorage::getFileRepeatCount(const QString &path)

返回与虚拟路径 path 所指向文件内容完全相同的虚拟路径数量(含自身)。

qint32 VirtualStorage::getFileSize(const QString &path)

返回虚拟路径 path 对应文件的数据大小(字节)。若路径不存在则返回 -1。

QString VirtualStorage::getFileVID(const QString &path)

返回虚拟路径 path 对应文件的 VID(MD5-四位十六进制碰撞序号)。

Visindigo::Utility::JsonConfig VirtualStorage::listFolder(const QString &folderPath, bool recursive = false)

列出虚拟路径 folderPath 下的子文件夹和文件。 若 recursive 为 true,则递归列出所有子孙节点。

返回的 JsonConfig 结构为: { "sub_folders": { "名称": { ... }, ... }, "files": { "名称": "VID", ... } }

QByteArray VirtualStorage::readFile(const QString &path)

读取虚拟路径 path 对应的文件数据。若路径不存在则返回空 QByteArray

QByteArray VirtualStorage::readFileByVID(const QString &vid)

通过 VID 读取文件数据。VID 格式为 "MD5-XXXX",其中 XXXX 为四位十六进制碰撞序号。

vid 文件数据标识,格式为 "MD5-XXXX"。

QString VirtualStorage::removeFile(const QString &path)

删除虚拟路径 path 的映射。若该数据条目不再被任何虚拟路径引用,则同时删除数据。 返回被移除路径的 VID;若路径不存在则返回空字符串。

QString VirtualStorage::removeFileByVID(const QString &vid)

删除指定 VID 对应的数据条目及其所有虚拟路径映射。 返回被删除的 VID;若 VID 无效或不存在则返回空字符串。

vid 要删除的文件数据标识。

void VirtualStorage::saveFile(const QString &path, const QByteArray &data)

保存(或覆盖)虚拟路径 path 对应的文件数据。 若数据内容与已有文件完全相同,将仅建立新的虚拟路径映射而不再存储一份数据。 若该虚拟路径先前已绑定其他内容,则自动解除旧的绑定并适时清理不再引用的数据条目。

path 虚拟路径。 data 文件数据。