Witam mam kod programu pobierający listę plików z folderu a następnie jest generowany plik log.txt z lokalizacją pliku, rozmiarem pliku i sumą crc16. I teraz mam pytanie do was czy da radę jakoś ten kod uprościć bo wygląda "brzydko" :D
#include <QCoreApplication>
#include <QDebug>
#include <QFile>
#include <QDir>
#include <QFileInfo>
#include <QTextStream>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QFile log("D:/log.txt");
if(!log.open(QIODevice::WriteOnly | QIODevice::Text))
{
qDebug() << "Nie można otworzyć pliku log.txt";
}
QTextStream out(&log);
QString lnk = "D:/program_ftp/folder/";
QDir dir(lnk);
dir.setFilter(QDir::Dirs | QDir::NoDotAndDotDot | QDir::Hidden | QDir::NoSymLinks); // Ustawienie filtrów
dir.setSorting(QDir::Name); // Ustawienie sortowania
QFileInfoList dir_list = dir.entryInfoList(); // Utworzenie listy folderów
for(int i = 0; i < dir_list.size(); ++i)
{
QFileInfo dirInfo = dir_list.at(i);
qDebug() << dirInfo.fileName();
QString lnk_file = lnk + dirInfo.fileName();
QDir dir2(lnk_file);
dir2.setFilter(QDir::Files | QDir::Hidden | QDir::NoSymLinks);
dir2.setSorting(QDir::Name);
QFileInfoList file_list = dir2.entryInfoList();
for(int j = 0; j < file_list.size(); ++j)
{
QFileInfo fileInfo = file_list.at(j);
QString lnk_file_sum = lnk_file + "/" + fileInfo.fileName();
QFile *file = new QFile(lnk_file_sum);
file->open(QIODevice::ReadOnly);
QByteArray byte = file->read(524288);
quint16 crcSum = qChecksum(byte.data(), byte.length());
file->close();
qDebug() << "\t" << fileInfo.fileName();
out << lnk_file << "/" << fileInfo.fileName() << "\t" << fileInfo.size() << "\t" << QString::number(crcSum, 16) << endl;
}
}
dir.setFilter(QDir::Files | QDir::Hidden | QDir::NoSymLinks);
dir.setSorting(QDir::Name);
QFileInfoList file_default_folder = dir.entryInfoList();
for(int k = 0; k < file_default_folder.size(); ++k)
{
QFileInfo fileInfo = file_default_folder.at(k);
QFile *file = new QFile(lnk + fileInfo.fileName());
file->open(QIODevice::ReadOnly);
QByteArray byte = file->read(524288);
quint16 crcSum = qChecksum(byte.data(), byte.length());
file->close();
out << lnk << fileInfo.fileName() << "\t" << fileInfo.size() << "\t" << QString::number(crcSum, 16) << endl;
}
log.close();
return a.exec();
}