🐞 fix(文件同步): 优化了搜索数据库的更新逻辑
This commit is contained in:
parent
dce2672f19
commit
0a31427a1e
|
@ -86,20 +86,20 @@ void FileSyncManage::getClassifiedFileList(FileSyncManage::FileKey key, FileSync
|
|||
qInfo() << "Get classification file list...";
|
||||
int index = getIndex(key, type);
|
||||
switch (type) {
|
||||
case FileType::Picture:
|
||||
m_fileParser->getFileInfoList(FILE_DOWN_PATH + m_uuid + "/" + CONFIG_FILE_LIST.value(index), list,
|
||||
FLAGE_LIST.value(key) + PICTURE_FLAGE);
|
||||
break;
|
||||
case FileType::Video:
|
||||
m_fileParser->getFileInfoList(FILE_DOWN_PATH + m_uuid + "/" + CONFIG_FILE_LIST.value(index), list,
|
||||
FLAGE_LIST.value(key) + VIDEO_FLAGE);
|
||||
break;
|
||||
case FileType::Music:
|
||||
m_fileParser->getFileInfoList(FILE_DOWN_PATH + m_uuid + "/" + CONFIG_FILE_LIST.value(index), list);
|
||||
break;
|
||||
case FileType::Doc:
|
||||
m_fileParser->getFileInfoList(FILE_DOWN_PATH + m_uuid + "/" + CONFIG_FILE_LIST.value(index), list);
|
||||
break;
|
||||
case FileType::Picture:
|
||||
m_fileParser->getFileInfoList(FILE_DOWN_PATH + m_uuid + "/" + CONFIG_FILE_LIST.value(index), list,
|
||||
FLAGE_LIST.value(key) + PICTURE_FLAGE);
|
||||
break;
|
||||
case FileType::Video:
|
||||
m_fileParser->getFileInfoList(FILE_DOWN_PATH + m_uuid + "/" + CONFIG_FILE_LIST.value(index), list,
|
||||
FLAGE_LIST.value(key) + VIDEO_FLAGE);
|
||||
break;
|
||||
case FileType::Music:
|
||||
m_fileParser->getFileInfoList(FILE_DOWN_PATH + m_uuid + "/" + CONFIG_FILE_LIST.value(index), list);
|
||||
break;
|
||||
case FileType::Doc:
|
||||
m_fileParser->getFileInfoList(FILE_DOWN_PATH + m_uuid + "/" + CONFIG_FILE_LIST.value(index), list);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -142,7 +142,11 @@ void FileSyncManage::updateFileInfo(FileSyncManage::FileKey key, FileSyncManage:
|
|||
if (isUpdate) {
|
||||
downloadSearch();
|
||||
} else {
|
||||
Q_EMIT sigSearchInfoFinsh(FILE_DOWN_PATH + m_uuid + "/" + CONFIG_FILE_LIST.value(FileType::SearchFile));
|
||||
if (m_isFirst) {
|
||||
m_isFirst = false;
|
||||
Q_EMIT sigSearchInfoFinsh(FILE_DOWN_PATH + m_uuid + "/" +
|
||||
CONFIG_FILE_LIST.value(FileType::SearchFile));
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
@ -167,7 +171,11 @@ void FileSyncManage::updateFileInfo(FileSyncManage::FileKey key, FileSyncManage:
|
|||
downloadSearch();
|
||||
} else {
|
||||
Q_EMIT sigDownAllFileFinish("");
|
||||
Q_EMIT sigSearchInfoFinsh(FILE_DOWN_PATH + m_uuid + "/" + CONFIG_FILE_LIST.value(FileType::SearchFile));
|
||||
if (m_isFirst) {
|
||||
m_isFirst = false;
|
||||
Q_EMIT sigSearchInfoFinsh(FILE_DOWN_PATH + m_uuid + "/" +
|
||||
CONFIG_FILE_LIST.value(FileType::SearchFile));
|
||||
}
|
||||
}
|
||||
}
|
||||
if (updateTask != nullptr) {
|
||||
|
@ -193,12 +201,12 @@ void FileSyncManage::downThumb(FileSyncManage::FileKey key, FileSyncManage::File
|
|||
int index = getIndex(key, type);
|
||||
QString path = FILE_DOWN_PATH + m_uuid + "/" + CONFIG_FILE_LIST.value(index);
|
||||
switch (type) {
|
||||
case FileType::Picture:
|
||||
flag = FLAGE_LIST.value(key) + PICTURE_FLAGE;
|
||||
break;
|
||||
case FileType::Video:
|
||||
flag = FLAGE_LIST.value(key) + VIDEO_FLAGE;
|
||||
break;
|
||||
case FileType::Picture:
|
||||
flag = FLAGE_LIST.value(key) + PICTURE_FLAGE;
|
||||
break;
|
||||
case FileType::Video:
|
||||
flag = FLAGE_LIST.value(key) + VIDEO_FLAGE;
|
||||
break;
|
||||
}
|
||||
QStringList list;
|
||||
m_fileParser->getThumbList(path, list);
|
||||
|
@ -234,8 +242,8 @@ void FileSyncManage::downTempFile(QString filePath)
|
|||
});
|
||||
connect(tempTask, &DownloadTask::sigTaskFinish, this, [=](QString flag, QString fileName) {
|
||||
qInfo() << fileName << " file download complete.";
|
||||
Q_EMIT sigTempFileDownFinish(FILE_DOWN_PATH + m_uuid + TEMP_DOWN_PATH
|
||||
+ filePath.mid(filePath.lastIndexOf("/") + 1, filePath.size()));
|
||||
Q_EMIT sigTempFileDownFinish(FILE_DOWN_PATH + m_uuid + TEMP_DOWN_PATH +
|
||||
filePath.mid(filePath.lastIndexOf("/") + 1, filePath.size()));
|
||||
if (tempTask != nullptr) {
|
||||
tempTask->deleteLater();
|
||||
}
|
||||
|
@ -312,9 +320,9 @@ void FileSyncManage::clearTempFiles(const QString path)
|
|||
// 因为只需要遍历第一层即可,所以第四个参数填QDirIterator::NoIteratorFlags
|
||||
QDirIterator dirsIterator(path, QDir::Files | QDir::AllDirs | QDir::NoDotAndDotDot, QDirIterator::NoIteratorFlags);
|
||||
while (dirsIterator.hasNext()) {
|
||||
if (!dir.remove(dirsIterator.next())) // 删除文件操作如果返回否,那它就是目录
|
||||
if (!dir.remove(dirsIterator.next())) // 删除文件操作如果返回否,那它就是目录
|
||||
{
|
||||
QDir(dirsIterator.filePath()).removeRecursively(); // 删除目录本身以及它下属所有的文件及目录
|
||||
QDir(dirsIterator.filePath()).removeRecursively(); // 删除目录本身以及它下属所有的文件及目录
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -322,12 +330,12 @@ void FileSyncManage::clearTempFiles(const QString path)
|
|||
void FileSyncManage::setSearchPath(FileSyncManage::SearchFileType type, QString homePath)
|
||||
{
|
||||
switch (type) {
|
||||
case SearchFileType::Android:
|
||||
m_searchfilePath = FILE_PATH_SEARCH;
|
||||
break;
|
||||
case SearchFileType::Pc:
|
||||
m_searchfilePath = FILE_HOME_PATH + homePath + FILE_PATH_PCSEARCH;
|
||||
break;
|
||||
case SearchFileType::Android:
|
||||
m_searchfilePath = FILE_PATH_SEARCH;
|
||||
break;
|
||||
case SearchFileType::Pc:
|
||||
m_searchfilePath = FILE_HOME_PATH + homePath + FILE_PATH_PCSEARCH;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -18,23 +18,23 @@ public:
|
|||
~FileSyncManage();
|
||||
|
||||
enum FileKey {
|
||||
Default = 0, // 默认
|
||||
WeChat, // 微信
|
||||
QQ, // QQ
|
||||
Default = 0, // 默认
|
||||
WeChat, // 微信
|
||||
QQ, // QQ
|
||||
};
|
||||
|
||||
enum FileType {
|
||||
Picture = 0, // 图片
|
||||
Video = 1, // 视频
|
||||
Music = 2, // 音乐
|
||||
Doc = 3, // 文档
|
||||
FileNum = 12, // 分类文件数量
|
||||
SearchFile = 13, // 搜索索引文件
|
||||
Picture = 0, // 图片
|
||||
Video = 1, // 视频
|
||||
Music = 2, // 音乐
|
||||
Doc = 3, // 文档
|
||||
FileNum = 12, // 分类文件数量
|
||||
SearchFile = 13, // 搜索索引文件
|
||||
};
|
||||
|
||||
enum SearchFileType {
|
||||
Android = 0, // 移动设备搜索文件
|
||||
Pc = 1, // PC设备搜索文件
|
||||
Android = 0, // 移动设备搜索文件
|
||||
Pc = 1, // PC设备搜索文件
|
||||
};
|
||||
|
||||
// 中止当前下载
|
||||
|
@ -73,16 +73,17 @@ private:
|
|||
int getIndex(FileSyncManage::FileKey key, FileSyncManage::FileType type);
|
||||
|
||||
private:
|
||||
DownloadTask *m_task = nullptr; // 下载任务
|
||||
QThread *m_thread = nullptr; // 下载线程
|
||||
FileParSer *m_fileParser = nullptr; // 文件解析
|
||||
QUrl m_url; // 服务器地址
|
||||
QString m_uuid = ""; // 连接设备的uuid
|
||||
QStringList m_fileList; // 下载文件地址列表
|
||||
QString m_downPath = ""; // 下载路径
|
||||
QString m_fileName = ""; // 文件名
|
||||
QString m_fileFlag = ""; // 文件前缀
|
||||
QString m_searchfilePath = ""; // 搜索文件下载路径
|
||||
DownloadTask *m_task = nullptr; // 下载任务
|
||||
QThread *m_thread = nullptr; // 下载线程
|
||||
FileParSer *m_fileParser = nullptr; // 文件解析
|
||||
QUrl m_url; // 服务器地址
|
||||
QString m_uuid = ""; // 连接设备的uuid
|
||||
QStringList m_fileList; // 下载文件地址列表
|
||||
QString m_downPath = ""; // 下载路径
|
||||
QString m_fileName = ""; // 文件名
|
||||
QString m_fileFlag = ""; // 文件前缀
|
||||
QString m_searchfilePath = ""; // 搜索文件下载路径
|
||||
bool m_isFirst = true;
|
||||
|
||||
Q_SIGNALS:
|
||||
void sigDownFileFinish(QString, QString);
|
||||
|
@ -96,4 +97,4 @@ public Q_SLOTS:
|
|||
void slotTaskFail(QString name, QString flag);
|
||||
};
|
||||
|
||||
#endif // FILESYNCMANGE_H
|
||||
#endif // FILESYNCMANGE_H
|
||||
|
|
Loading…
Reference in New Issue