0

我有一个文件名到 QByteArray

QString file_name = "icon.jpg";
QByteArray qba1; qba+=file_name;

我将文件的内容放入 QByteArray

QFile file("C:\\Devel\\icon.jpg"); 
if (file.open(QIODevice::ReadOnly)){
     QByteArray content = file.readAll();
}
  1. QByteArray 类型的一个变量如何连接文件名和内容?
  2. 如何将此变量 QByteArray 解析回文件名和内容?
4

1 回答 1

0

最简单的方法是从文件名的长度开始,然后是文件名本身,然后是数据。解析数据很简单,首先读取文件名长度,然后读取文件名,然后读取数据。

QByteArray qbaFileName((const char*)(file_name.utf16()), file_name.size() * 2);

QByteArray byteArray;
QDataStream stream(&byteArray, QIODevice::WriteOnly);
stream << (int)qbaFileName.size();    // put length of filename on stream
stream << qbaFileName;                // put filename on stream
stream << file.readAll();             // put binary data on stream
于 2014-12-16T10:15:04.627 回答