#ifndef INFO_DIR_FILE_H #define INFO_DIR_FILE_H #include #include #include #include #include enum FileType : uint32_t { None = 0, File, Dir, Link, Other }; struct DirFileInfo { QString name; quint64 size{}; FileType type = None; QString fullPath; quint16 permission{}; quint64 lastModified{}; void serialize(QDataStream& data) const { data << name << size << type << fullPath << permission << lastModified; } void deserialize(QDataStream& data) { data >> name >> size >> type >> fullPath >> permission >> lastModified; } }; QDataStream& operator<<(QDataStream& data, const DirFileInfo& info); QDataStream& operator>>(QDataStream& data, DirFileInfo& info); struct DirFileInfoVec { QVector vec; void serialize(QDataStream& data) const { data << vec.size(); for (const auto& info : vec) { data << info; } } void deserialize(QDataStream& data) { qsizetype size; data >> size; vec.resize(size); for (quint32 i = 0; i < size; ++i) { data >> vec[i]; } } }; #endif // INFO_DIR_FILE_H