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
获取软链目标