唔。放些代码在这里方便用.
#ifndef FILEOPERATION_H
#define FILEOPERATION_H
class QString;
class QByteArray;
class QTextCodec;
class FileOperation
{
public:
FileOperation();
static bool createDir(const QString &fileName);
static bool writeText(const QString &fileName, const QByteArray &data, QTextCodec *code);
static bool writePixmap(const QString &fileName, const QByteArray &data);
static QString readText(const QString &fileName, const QString &code);
};
#endif // FILEOPERATION_H
#include "fileoperation.h"
#include <QDir>
#include <QFile>
#include <QPixmap>
#include <QTextCodec>
#include <QJsonArray>
#include <QJsonObject>
#include <QTextStream>
#include <QJsonDocument>
FileOperation::FileOperation()
{
}
bool FileOperation::createDir(const QString &fileName)
{
QString tmp = fileName;
const QStringList & list= tmp.split("/");
QString path;
int length = list.length()-1;
QDir dir;
path = list[0];
for(int i=1;i<length;i++){
QString temp = (path+="/"+list[i]);
if(!dir.exists(temp)){
if(!dir.mkdir(temp)){
return false;
}
}
}
return true;
}
bool FileOperation::writeText(const QString &fileName, const QByteArray &data, QTextCodec *code)
{
QFile file(fileName);
if(!file.open(QIODevice::WriteOnly | QIODevice::Text)){
return false;
}
QTextStream out(&file);
out.setCodec(code->name());
out <<code->toUnicode(data).toUtf8();
file.close();
return true;
}
bool FileOperation::writePixmap(const QString &fileName, const QByteArray &data)
{
QPixmap p;
p.loadFromData(data);
return p.save(fileName);
}
QString FileOperation::readText(const QString &fileName, const QString &code)
{
QFile file(fileName);
if(!file.open(QIODevice::ReadOnly|QIODevice::Text)){
return QString();
}
QTextStream cin(&file);
cin.setCodec(code);
QString data;
while(!cin.atEnd()){
data+=cin.readLine();
}
file.close();
return data;
}