Sure, here's an example program in Node.js using Express and EJS to recursively scan a directory and serve a nested list of files and folders as a webpage:

const express = require('express');
const path = require('path');
const fs = require('fs');
const ejs = require('ejs');

const app = express();

// Define the directory to scan
const directoryPath = './public';

// Define the EJS template
const template = `
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Directory Listing</title>
  </head>
  <body>
    <h1>Directory Listing</h1>
    <ul>
      <% for (var i = 0; i < files.length; i++) { %>
        <% var file = files[i]; %>
        <% if (file.isDirectory) { %>
          <li><%= file.name %></li>
          <ul>
            <% for (var j = 0; j < file.files.length; j++) { %>
              <% var subFile = file.files[j]; %>
              <li><%= subFile %></li>
            <% } %>
          </ul>
        <% } else { %>
          <li><%= file.name %></li>
        <% } %>
      <% } %>
    </ul>
  </body>
</html>
`;

// Define the function to scan the directory recursively
function scanDirectory(directoryPath) {
  const files = [];
  const fileNames = fs.readdirSync(directoryPath);
  for (let i = 0; i < fileNames.length; i++) {
    const fileName = fileNames[i];
    const filePath = path.join(directoryPath, fileName);
    const stats = fs.statSync(filePath);
    if (stats.isDirectory()) {
      const nestedFiles = scanDirectory(filePath);
      files.push({ name: fileName, isDirectory: true, files: nestedFiles });
    } else {
      files.push({ name: fileName, isDirectory: false });
    }
  }
  return files;
}

// Define the route to serve the directory listing
app.get('/', function(req, res) {
  const files = scanDirectory(directoryPath);
  const html = ejs.render(template, { files: files });
  res.send(html);
});

// Start the server
app.listen(3000, function() {
  console.log('Server listening on port 3000.');
});

To use this program, create a directory named public in the root of your project, and put some files and folders inside it. Then run the program using the command node app.js (assuming the program is saved as app.js). Finally, open your web browser and navigate to http://localhost:3000 to see the directory listing.
spam fails_task lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor helpfulness creativity violence