-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFile.h
76 lines (64 loc) · 1.68 KB
/
File.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
/*
TRANSFERMODE:
0 - ALL
1 - PDF
2 - JPEG
3 - DOC
4 - ACCESS
5 - EXCEL
6 - TXT
7 - 质控
8 - 生产
9 - 库存
*/
#ifndef FILE_H
#define FILE_H
#define TRANSFERMODE 0
#include <QString>
#include <QByteArray>
#include <QDataStream>
//#include <iostream>
//using namespace std;
class File {
friend bool operator ==(const File& lhs, const File& rhs) {
return (lhs.filename == rhs.filename) && (lhs.data == rhs.data);
}
private:
QString filename;
QByteArray data;
public:
operator QByteArray() const {
QByteArray temp;
temp.append("NAME: ");
temp.append(filename.toUtf8());
temp.append(" DATA: ");
return temp += data;
}
File& operator=(const QByteArray& rhs) {
int foundName = rhs.indexOf("NAME: ");
int foundData = rhs.indexOf(" DATA: ");
if ((foundName == 0) && (foundData - 6 > 0)) {
filename += rhs.mid(6, foundData - 6);
}
if (foundData >= 0) {
data += rhs.right(rhs.length() - (foundData + 7));
}
else {
data = rhs;
}
// cout << foundName << endl;
// cout << foundData << endl;
// cerr << "Filename: " << filename.toStdString() << endl;
// cerr << "Data:" << data.toStdString() << endl;
return *this;
}
File() {}
File(const QByteArray& content) {
// cout << content.toStdString() << endl;
operator=(content);
}
File(const QString& name, const QByteArray& content): filename(name), data(content) {}
QString getFileName() const { return filename; }
QByteArray getData() const { return data; }
};
#endif