#include "directory.h" #include #include #include #include void Directory::init(QScriptValue &extensionObject, QScriptEngine *engine) { QScriptValue dirObj = engine->newQObject(new Directory, QScriptEngine::ScriptOwnership); dirObj.setProperty("scan", engine->newFunction(Directory::js_scan)); extensionObject.setProperty("Directory", dirObj); } QScriptValue Directory::js_scan(QScriptContext *context, QScriptEngine *engine) { Q_UNUSED(engine); if (context->argumentCount() < 2) { return context->throwError(QScriptContext::SyntaxError, tr("scan expects 2 arguments")); } const QString sourceDir = context->argument(0).toString(); const QString mask = context->argument(1).toString(); QDir dir(sourceDir); QStringList filesList; dir.setFilter(QDir::Files | QDir::Hidden | QDir::NoSymLinks); if (!mask.isEmpty()) dir.setNameFilters(QStringList() << mask); QFileInfoList list = dir.entryInfoList(); for (int i = 0; i < list.size(); ++i) { QFileInfo fileInfo = list.at(i); filesList << fileInfo.canonicalFilePath(); } //QString errorMessage; QScriptValue val=engine->newArray ( filesList.size() ); for (quint32 i=0;i< filesList.size();i++){ val.setProperty(i, filesList[i]); } return val; }