@Groofy

Как составить структуру файлов и папок?

Дано
OS - Windows 7
Папка в которой множество папок и файлов


Требуется
Составить схему всех файлов и папок


Пример
Папка_1
//Папка_1_1
////Файл_1_1_1.jpg
////Файл_1_1_2.png
////Файл_1_1_3.html
//Папка_1_2
Папка_2
Папка_3


Рассматриваю как скрипты, так и программы
  • Вопрос задан
  • 1217 просмотров
Пригласить эксперта
Ответы на вопрос 3
@vilgeforce
Раздолбай и программист
FindFirstFile + FindNextFile
Ответ написан
Комментировать
@SerMelipharo
В cmd.exe использовать tree %ПУТЬ% /F >вывод.txt
подробнее: tree /? ;)

Круто, не правда ли? Я сам, правда, пока вы не спросили, не помнил об этой фиче
Ответ написан
Комментировать
@Tanyki
Только начал кодить
#include
#include
#include
#include
#include
#include
#include
#include
#include
static QJsonArray fList;
static int extraSize = 0;
using namespace std;

void folderHandler(QString folderPath) {
for (QFileInfo f : QDir(folderPath).entryInfoList()) {
if (!f.isDir()) {
QJsonObject fileInfo {
{"fileName", f.fileName()},
{"size", f.size()},
{"path", f.filePath()}
};
fList.push_back(fileInfo);
} else if (f.fileName() != "." && f.fileName() != "..") {
folderHandler(f.absoluteFilePath());
}
}
}

void fileHandler() {
QJsonArray copyFileList = fList;
for (int i = 0; i < fList.size(); i++) {
QJsonArray duplicateList;
QJsonObject buf = fList[i].toObject();
for (int k = 0; k < copyFileList.size(); k++) {
if (copyFileList[k].toObject().value("fileName") == buf.value("fileName") &&
copyFileList[k].toObject().value("size") == buf.value("size")) {
duplicateList.push_back(copyFileList[k].toObject());
copyFileList.removeAt(k);
k--;
}
}
if (duplicateList.size() > 1) {
extraSize += duplicateList[0].toObject().value("size").toInt() * (duplicateList.size()-1);
for (QJsonValueRef d : duplicateList) {
qDebug() << d.toObject().value("path").toString();
}
}

}
}

int main()
{
QString path = "C:\\Text";
qDebug() << "root dir" << QDir(path).absolutePath();
//folderHandler(path);
fileHandler();
qDebug() << "extra size" << extraSize << "b";
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы