0

以下のコードを使用して、zip アーカイブ内のフォルダーとファイルのリストを移動し、それらを作成します (まだ作成されていない場合はファイルのパスも作成します)。

を使用readData(char*, qint64)して内部ファイル データを抽出し、QFile. これを使用するのは適切ではないと思いますが、私が見たのはこれだけです (このサイトの非常に緩い例で)。また、関数を公開するために QuaZipFile.h を変更して、使用できるようにする必要がありました (また、私はそれを使用すべきではないことをほのめかしています)。

内容のない最初のファイルではクラッシュしませんが、その後はクラッシュします。必要なコードは次のとおりです (もっと見る必要があるかどうか尋ねてください)。

QFile newFile(fNames);
newFile.open(QIODevice::WriteOnly);
QTextStream outToFile(&newFile);
char * data;
int len = file.readData(data, 100000000);
if(len > 0) {
    outToFile << data;
}
newFile.close();

int lenそれは一線を越えません。ここで何を使用すればよいですか?変数ファイルは、次のようにかなり前に定義されていることに注意してください。

QuaZip zip("zip.zip");
QuaZipFile file(&zip);
...
zip.goToFirstFile();
...
zip.goToNextFile();

また、readData に渡される int は、最大データ サイズの乱数です。

4

2 に答える 2

0

解決しました。

さまざまな読み取り (readData、read、readLine) を使用してみましたが、この行はデータ バッファーを必要とせずに機能することがわかりました。

outToFile << file.readAll();
于 2013-05-15T13:45:09.843 に答える