Exemplo n.º 1
0
		TITANIUM_FUNCTION(File, getDirectoryListing)
		{
			auto listing = getDirectoryListing();
			auto context = get_context();
			std::vector<JSValue> result;
			for (size_t i = 0; i < listing.size(); i++) {
				result.push_back(context.CreateString(listing.at(i)));
			}
			return context.CreateArray(result);
		}
Exemplo n.º 2
0
void get_directory_listing_method(struct mg_connection *conn,
         const struct mg_request_info *ri)
{
    char basePathBuf[PATH_MAX];
    char *resp;
    
    get_var(ri, "base_path", basePathBuf, PATH_MAX);
    resp = getDirectoryListing(basePathBuf);

    if (resp)
    {
        sendResponse(conn, RESP_OK, CONTENT_TYPE_JSON, resp);
        free(resp);
    }
    else
    {
        char *errorJSON = formErrorJSON(NO_MATCHING_RECORDS, "No matching record(s) exist(s)");
        sendResponse(conn, RESP_NOT_FOUND, CONTENT_TYPE_PLAIN_TEXT, errorJSON);
        free(errorJSON);
    }
}
Exemplo n.º 3
0
void getDirectoryListingR(const char* dir, std::vector<std::string>* filesout, std::vector<std::string>* directoriesout)
{
	filesout->clear();
	directoriesout->clear();

	std::stack<std::string> stack;

	std::string directory = dir;

	int dirlen = strlen(dir);
	if (dirlen > 0 && (dir[dirlen - 1] == '/' || dir[dirlen - 1] == '\\'))
		directory.resize(directory.size() - 1);

	stack.push("");

	while (!stack.empty())
	{
		std::string dir = stack.top();
		stack.pop();

		std::vector<std::string> files, directories;
		getDirectoryListing((directory + dir).c_str(), &files, &directories);

		for (std::size_t i = 0; i < files.size(); ++i)
		{
			std::string str = dir + "/" + files[i];	
			filesout->push_back(str.c_str() + 1);
		}

		for (std::size_t i = 0; i < directories.size(); ++i)
		{
			std::string str = dir + "/" + directories[i];	
			directoriesout->push_back(str.c_str() + 1);
			stack.push(dir + "/" + directories[i]);
		}
	}
}
void printDirectoryListing(char *dir)
{
	char *listing = getDirectoryListing(dir);
	fprintf(stdout, "'%s/' directory listing: \n\n%s\n", dir, listing);
	free(listing);
}