বাক্সের বাইরে
আপনি যদি বাক্সের বাইরে ডিরেক্টরি কাঠামোযুক্ত কোনও অবজেক্ট চান তবে আমি আপনাকে ডিরেক্টরি-ট্রি পরীক্ষা করার জন্য অত্যন্ত অনুরোধ করি ।
আপনাকে এই কাঠামো আছে বলে দেয়:
photos
│ june
│ └── windsurf.jpg
└── january
├── ski.png
└── snowboard.jpg
const dirTree = require("directory-tree");
const tree = dirTree("/path/to/photos");
ফিরে আসবে:
{
path: "photos",
name: "photos",
size: 600,
type: "directory",
children: [
{
path: "photos/june",
name: "june",
size: 400,
type: "directory",
children: [
{
path: "photos/june/windsurf.jpg",
name: "windsurf.jpg",
size: 400,
type: "file",
extension: ".jpg"
}
]
},
{
path: "photos/january",
name: "january",
size: 200,
type: "directory",
children: [
{
path: "photos/january/ski.png",
name: "ski.png",
size: 100,
type: "file",
extension: ".png"
},
{
path: "photos/january/snowboard.jpg",
name: "snowboard.jpg",
size: 100,
type: "file",
extension: ".jpg"
}
]
}
]
}
কাস্টম অবজেক্ট
অন্যথায় আপনি যদি নিজের কাস্টম সেটিংস সহ ডিরেক্টরি ট্রি অবজেক্ট তৈরি করতে চান তবে নীচের স্নিপেটটি দেখুন। একটি লাইভ উদাহরণ এই কোডস্যান্ডবক্সে দৃশ্যমান ।
// my-script.js
const fs = require("fs");
const path = require("path");
const isDirectory = filePath => fs.statSync(filePath).isDirectory();
const isFile = filePath => fs.statSync(filePath).isFile();
const getDirectoryDetails = filePath => {
const dirs = fs.readdirSync(filePath);
return {
dirs: dirs.filter(name => isDirectory(path.join(filePath, name))),
files: dirs.filter(name => isFile(path.join(filePath, name)))
};
};
const getFilesRecursively = (parentPath, currentFolder) => {
const currentFolderPath = path.join(parentPath, currentFolder);
let currentDirectoryDetails = getDirectoryDetails(currentFolderPath);
const final = {
current_dir: currentFolder,
dirs: currentDirectoryDetails.dirs.map(dir =>
getFilesRecursively(currentFolderPath, dir)
),
files: currentDirectoryDetails.files
};
return final;
};
const getAllFiles = relativePath => {
const fullPath = path.join(__dirname, relativePath);
const parentDirectoryPath = path.dirname(fullPath);
const leafDirectory = path.basename(fullPath);
const allFiles = getFilesRecursively(parentDirectoryPath, leafDirectory);
return allFiles;
};
module.exports = { getAllFiles };
তারপরে আপনি সহজভাবে এটি করতে পারেন:
// another-file.js
const { getAllFiles } = require("path/to/my-script");
const allFiles = getAllFiles("/path/to/my-directory");
fs.readdir
কাজ করে তবে ফাইলের নাম গ্লোব ধরণগুলি ব্যবহার করতে পারে নাls /tmp/*core*
। পরীক্ষা করে দেখুন github.com/isaacs/node-glob । গ্লোবগুলি এমনকি উপ ডিরেক্টরিতেও অনুসন্ধান করতে পারে।