9#include <dtkcore_global.h>
11#define DCORE_BEGIN_NAMESPACE
12#define DCORE_END_NAMESPACE
13#define LIBDTKCORESHARED_EXPORT
14#define D_DECLARE_PRIVATE(Class) Class##Private *d;
40 static void registerFileEngine();
43 explicit DDciFile(
const QString &fileName);
44 explicit DDciFile(
const QByteArray &data);
56 QStringList
list(
const QString &dir,
bool onlyFileName =
false)
const;
58 bool exists(
const QString &filePath)
const;
60 QByteArray
dataRef(
const QString &filePath)
const;
61 QString
name(
const QString &filePath)
const;
62 QString
symlinkTarget(
const QString &filePath,
bool originData =
false)
const;
65 bool mkdir(
const QString &filePath);
66 bool writeFile(
const QString &filePath,
const QByteArray &data,
bool override =
false);
67 bool remove(
const QString &filePath);
68 bool rename(
const QString &filePath,
const QString &newFilePath,
bool override =
false);
69 bool copy(
const QString &from,
const QString &to);
70 bool link(
const QString &source,
const QString &to);
ddcifile.h 是关于dci文件相关操作的一个类,实现了 DCI 文件的逻辑。其只是对数据的打包 dci文件的结构路径如下:
Definition ddcifile.h:30
QString name(const QString &filePath) const
获取dci内文件的文件名
bool rename(const QString &filePath, const QString &newFilePath, bool override=false)
重命名文件
QByteArray dataRef(const QString &filePath) const
获取dci内部文件的数据,以一种引用(软连接)的方式获取,不会产生数据的的复制
QString lastErrorString() const
获取上一个报错信息,为人类可读字符串,可以通过此报错信息来获取错误内容,一般情况下是因为文件不存在或者文件名过长(>62个字符)导致。
bool writeFile(const QString &filePath, const QByteArray &data, bool override=false)
写入文件
FileType
Definition ddcifile.h:33
@ UnknowFile
未知文件
Definition ddcifile.h:34
int childrenCount(const QString &dir) const
子文件计数
bool exists(const QString &filePath) const
判断文件是否存在
bool mkdir(const QString &filePath)
创建目录(注意:此目录指的是在dci文件内部的目录,而不是指的是传统目录)
bool isValid() const
判断读取的dci文件是否有效
FileType type(const QString &filePath) const
判断文件类型
bool writeToDevice(QIODevice *device) const
写入到设备,设备指的是qt中的io设备,可以在qt文档中找到相关信息
bool writeToFile(const QString &fileName) const
写入文件,在做完对于dci文件的操作之后调用此接口,为保存的作用
QStringList list(const QString &dir, bool onlyFileName=false) const
列出文件列表
bool remove(const QString &filePath)
移除文件
bool link(const QString &source, const QString &to)
链接文件
static constexpr int metadataSizeV1()
MAGIC_SIZE + VERSION_SIZE + FILE_COUNT_SIZE: 4+1+3 = 8
QByteArray toData() const
返回dci文件的原始数据,以QByteArray形式返回
QString symlinkTarget(const QString &filePath, bool originData=false) const
获取软链目标