QuaZip を使用して ziparchive 内のテキスト ファイルに QString を書き込みたい。WinXP で Qt Creator を使用しています。私のコードでは、アーカイブ内のテキスト ファイルが作成されますが、空です。
QDomDocument doc;
/* doc is filled with some XML-data */
zipfile = new QuaZip("test.zip");
zipfile->open(QuaZip::mdCreate);
QuaZipFile file(zipfile);
file.open(QIODevice::WriteOnly, QuaZipNewInfo("foo.xml"));
QTextStream ts ( &file );
ts << doc.toString();
file.close();
zipfile.close();
QFile を試してみると、期待どおりに動作します。
QDomDocument doc;
/* doc is filled with some XML-data */
QFile file("test.xml");
file.open(QIODevice::WriteOnly);
QTextStream ts ( &file );
ts << doc.toString();
file.close();
私はtest.xmlで正しいコンテンツを見つけたので、文字列はそこにありますが、どういうわけかQTextStreamはQuaZipFileで動作したくありません.
QTextStream の代わりに QDataStream を使用すると、出力はありますが、正しいものではありません。QDomDocument ドキュメント; /* doc はいくつかの XML データで満たされています */
zipfile = new QuaZip("test.zip");
zipfile->open(QuaZip::mdCreate);
QuaZipFile file(zipfile);
file.open(QIODevice::WriteOnly, QuaZipNewInfo("foo.xml"));
QDataStream ts ( &file );
ts << doc.toString();
file.close();
zipfile.close();
test.zip の foo.xml にはいくつかのデータが含まれていますが、フォーマットが間違っています (各文字の間に余分な「ヌル」文字があります)。
zipアーカイブのテキストファイルに文字列を書き込むにはどうすればよいですか?
ありがとう、ポール