아래 코드는 zip 아카이브의 폴더 및 파일 목록을 이동하면서 작성합니다 (아직 작성되지 않은 경우 파일 경로도 작성).QuaZip을 사용하여 여러 파일을 추출하려면 어떻게합니까?
readData(char*, qint64)
을 사용하여 내부 파일 데이터를 추출하여 QFile
으로 스트리밍하면 응용 프로그램이 충돌합니다. 나는 이것이 옳은 것이라고 생각하지 않는다. 그러나 내가 본 것은이 사이트의 아주 느슨한 예제이다. QuaZipFile.h를 변경하여 함수를 public으로 만들면 사용할 수있다. 또한 나는 그것을 사용해서는 안된다는 암시).
내용이없는 첫 번째 파일에는 충돌이 발생하지 않지만 이후에는 충돌하지 않습니다. 여기에 필요한 코드는 (당신이 더보고해야하는 경우 문의)입니다 :
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();
을 그리고 INT가되어, readData에 전달되는 최대 데이터 크기에 대한 임의의 번호 : 변수 파일이 이전에 꽤 정의되어 있는지 참고이 같은 puch.