50 lines
		
	
	
		
			847 B
		
	
	
	
		
			C++
		
	
	
	
	
	
		
		
			
		
	
	
			50 lines
		
	
	
		
			847 B
		
	
	
	
		
			C++
		
	
	
	
	
	
|   | // xlsxzipreader.cpp
 | ||
|  | 
 | ||
|  | #include "xlsxzipreader_p.h"
 | ||
|  | 
 | ||
|  | #include <private/qzipreader_p.h>
 | ||
|  | 
 | ||
|  | QT_BEGIN_NAMESPACE_XLSX | ||
|  | 
 | ||
|  | ZipReader::ZipReader(const QString &filePath) | ||
|  |     : m_reader(new QZipReader(filePath)) | ||
|  | { | ||
|  |     init(); | ||
|  | } | ||
|  | 
 | ||
|  | ZipReader::ZipReader(QIODevice *device) | ||
|  |     : m_reader(new QZipReader(device)) | ||
|  | { | ||
|  |     init(); | ||
|  | } | ||
|  | 
 | ||
|  | ZipReader::~ZipReader() | ||
|  | { | ||
|  | } | ||
|  | 
 | ||
|  | void ZipReader::init() | ||
|  | { | ||
|  |     const auto &allFiles = m_reader->fileInfoList(); | ||
|  |     for (const auto &fi : allFiles) { | ||
|  |         if (fi.isFile || (!fi.isDir && !fi.isFile && !fi.isSymLink)) | ||
|  |             m_filePaths.append(fi.filePath); | ||
|  |     } | ||
|  | } | ||
|  | 
 | ||
|  | bool ZipReader::exists() const | ||
|  | { | ||
|  |     return m_reader->exists(); | ||
|  | } | ||
|  | 
 | ||
|  | QStringList ZipReader::filePaths() const | ||
|  | { | ||
|  |     return m_filePaths; | ||
|  | } | ||
|  | 
 | ||
|  | QByteArray ZipReader::fileData(const QString &fileName) const | ||
|  | { | ||
|  |     return m_reader->fileData(fileName); | ||
|  | } | ||
|  | 
 | ||
|  | QT_END_NAMESPACE_XLSX |