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
|
#include "csListCommandHandler.h"
#include "JSON.h"
#include <file_logger.h>
#include <iostream>
#include <wx/dir.h>
#include "csManager.h"
csListCommandHandler::csListCommandHandler(csManager* manager)
: csCommandHandlerBase(manager)
{
}
csListCommandHandler::~csListCommandHandler() {}
void csListCommandHandler::DoProcessCommand(const JSONItem& options)
{
clDEBUG() << "Processing list command...";
CHECK_STR_PARAM("path", m_folder);
// Prepare the output
wxDir dir(m_folder);
wxString filename;
bool cont = dir.GetFirst(&filename);
JSON json(cJSON_Array);
JSONItem arr = json.toElement();
while(cont) {
wxFileName fn(m_folder, filename);
JSONItem entry = JSONItem::createObject();
wxString fullpath = fn.GetFullPath();
entry.addProperty("path", fn.GetFullPath());
entry.addProperty("type", wxFileName::DirExists(fullpath) ? "dir" : "file");
arr.arrayAppend(entry);
cont = dir.GetNext(&filename);
}
char* result = arr.FormatRawString(m_manager->GetConfig().IsPrettyJSON());
clDEBUG() << result;
std::cout << result << std::endl;
free(result);
}
|