首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >序列化QFileInfo

序列化QFileInfo
EN

Stack Overflow用户
提问于 2013-06-23 23:34:35
回答 1查看 588关注 0票数 1

我有一个文件列表,我想序列化每个文件的文件信息,并通过套接字发送它。

我发现可以像这样序列化,例如:

代码语言:javascript
复制
QByteArray ba;
QDataStream ds(&ba);
ds << my_stringlist;

QByteArray ba;
QDataStream ds(&ba);
ds >> my_stringlist;

但我找不到对QFileInfo的支持。是否可以序列化此Qt数据类型?有没有办法简单地实现这种类型的完全序列化,或者我只需要将数据分解成基本单元?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-24 00:00:21

没有标准的方法可以做到这一点。您可以定义自定义QDataStream操作符,如this answer中所示,也可以编写自己的函数在QFileInfoQVariant之间来回转换,并使用QVariant序列化。在所有这些方法中,您需要将数据分解为原始单元,是的。

然而,我认为序列化QFileInfo是毫无意义的。您应该使用QFileInfo::absoluteFilePath()来获取文件的路径并序列化该路径。如果您的接收代码运行在同一台机器上,则可以很容易地从该路径构造新的QFileInfo对象。

如果您的代码在另一台机器上运行,即使可以使用反序列化的QFileInfo,也不能使用。这是因为QFileInfo可能存储也可能不存储有关文件的信息。例如,当您运行QFileInfo::isFile时,它可能会向底层文件系统发出请求。

所以我认为最好是从QFileInfo请求所有需要的数据,然后发送这些数据,而不是发送QFileInfo。或者,您可以只发送绝对文件路径。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17262351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档