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 文件数据。