支持修改文件时间
This commit is contained in:
parent
a4e196fed8
commit
dbb86d6a58
|
@ -1,13 +1,5 @@
|
|||
#include "mainwindow.h"
|
||||
#include "ui_mainwindow.h"
|
||||
#include <QDebug>
|
||||
#include <QNetworkInterface>
|
||||
#include <QFileDialog>
|
||||
#include <QIntValidator>
|
||||
#include <QMessageBox>
|
||||
#include <QMimeDatabase>
|
||||
#include <QDateTime>
|
||||
#include <QMetaEnum>
|
||||
|
||||
MainWindow::MainWindow(QWidget *parent) :
|
||||
QMainWindow(parent),
|
||||
|
@ -98,6 +90,9 @@ void MainWindow::newConnect()
|
|||
if (state == 0) {
|
||||
state = 1;
|
||||
} else {
|
||||
file.close();
|
||||
file.open(QIODevice::ReadOnly);
|
||||
qDebug() << "setFileTime" << file.setFileTime(QDateTime::fromTime_t(lastModified), QFileDevice::FileModificationTime);
|
||||
file.close();
|
||||
state = 0;
|
||||
length = 0;
|
||||
|
@ -115,15 +110,25 @@ void MainWindow::newConnect()
|
|||
void MainWindow::readyRead()
|
||||
{
|
||||
QByteArray BA = tcpSocket->readAll();
|
||||
//qDebug() << BA ;
|
||||
//qDebug() << BA ;
|
||||
if (state == 0) {
|
||||
QString filename = BA;
|
||||
ui->textBrowser->append("[" + QDateTime::currentDateTime().toString("HH:mm:ss") + "] " + "接收:" + filename);
|
||||
QString filepath = ui->lineEdit_root_dir->text() + "/" + filename;
|
||||
QString s = BA;
|
||||
QJsonParseError JPE;
|
||||
QJsonDocument JD = QJsonDocument::fromJson(s.toUtf8(), &JPE);
|
||||
QString fileName = "?";
|
||||
if (JPE.error == QJsonParseError::NoError) {
|
||||
if (JD.isObject()) {
|
||||
QJsonObject JO = JD.object();
|
||||
fileName = JO.value("fileName").toString();
|
||||
lastModified = JO.value("lastModified").toDouble()/1000;
|
||||
}
|
||||
}
|
||||
ui->textBrowser->append("[" + QDateTime::currentDateTime().toString("HH:mm:ss") + "] " + "接收:" + fileName);
|
||||
QString filepath = ui->lineEdit_root_dir->text() + "/" + fileName;
|
||||
file.setFileName(filepath);
|
||||
file.open(QIODevice::WriteOnly);
|
||||
} else {
|
||||
file.write(BA);
|
||||
file.write(BA);
|
||||
length += BA.length();
|
||||
ui->statusBar->showMessage("接收:" + BS(length));
|
||||
}
|
||||
|
@ -161,10 +166,14 @@ void MainWindow::upload(QString filepath)
|
|||
|
||||
tcpSocket1->connectToHost(QHostAddress(ui->lineEdit_ip->text()), port);
|
||||
connect(tcpSocket1, &QTcpSocket::connected, [=](){
|
||||
QString filename = QFileInfo(filepath).fileName();
|
||||
tcpSocket1->write(filename.toUtf8());
|
||||
QString fileName = QFileInfo(filepath).fileName();
|
||||
QJsonObject JO;
|
||||
JO.insert("fileName", fileName);
|
||||
JO.insert("lastModified", static_cast<qint64>(QFileInfo(filepath).lastModified().toTime_t())*1000);
|
||||
QString s = QJsonDocument(JO).toJson(QJsonDocument::Compact);
|
||||
tcpSocket1->write(s.toUtf8());
|
||||
tcpSocket1->close();
|
||||
ui->textBrowser->append("[" + QDateTime::currentDateTime().toString("HH:mm:ss") + "] 上传:" + filename);
|
||||
ui->textBrowser->append("[" + QDateTime::currentDateTime().toString("HH:mm:ss") + "] 上传:" + s);
|
||||
});
|
||||
|
||||
QTcpSocket *tcpSocket2 = new QTcpSocket(this);
|
||||
|
|
11
mainwindow.h
11
mainwindow.h
|
@ -6,6 +6,16 @@
|
|||
#include <QTcpServer>
|
||||
#include <QTcpSocket>
|
||||
#include <QFile>
|
||||
#include <QDebug>
|
||||
#include <QNetworkInterface>
|
||||
#include <QFileDialog>
|
||||
#include <QIntValidator>
|
||||
#include <QMessageBox>
|
||||
#include <QMimeDatabase>
|
||||
#include <QDateTime>
|
||||
#include <QMetaEnum>
|
||||
#include <QJsonObject>
|
||||
#include <QJsonDocument>
|
||||
|
||||
namespace Ui {
|
||||
class MainWindow;
|
||||
|
@ -30,6 +40,7 @@ private:
|
|||
qint64 length;
|
||||
QString BS(long b);
|
||||
void upload(QString filepath);
|
||||
double lastModified = 0;
|
||||
|
||||
private slots:
|
||||
void newConnect();
|
||||
|
|
Loading…
Reference in New Issue