A powerful, flexible, and chainable file management system for Node.js.
A powerful, flexible, and chainable file management system for Node.js.
This system provides an easy way to manage files and directories while supporting:
- Custom error handling
- Custom chainable methods
- Advanced file operations like compression, metadata retrieval, and content manipulation.
✔ Rename, Move, Copy, and Delete files
✔ Append content to files
✔ Retrieve compressed file content (getInfo()
)
✔ Retrieve file metadata (getMetaInfo()
)
✔ Create, Delete, and List directories
✔ Check if a file/folder exists (syncExist()
)
✔ Custom error handling (e.g., auto-create missing files on error)
✔ Add custom chainable methods (addMethod()
)
✔ Invoke custom chain methods dynamically (invokeMethod()
)
To install and use this package, run:
git clone https://github.com/Whitzzscott/FileManagement.git
cd FileManagement
npm install
This example demonstrates:
- Error handling: Automatically creating a missing file if an error occurs.
- Custom chainable methods: Adding a method that logs the file path.
- File operations: Renaming, moving, copying, appending, and deleting a file.
import { FileWrapper } from "./wrappers/FileWrapper";
const file = new FileWrapper("./testFolder/sample.txt");
// ✅ Custom error handling: Auto-create missing files when they are not found
file.errorOnFound = (error) => {
if (error.code === "ENOENT") {
file.sync().writeFile("Default content");
console.log(`📄 File created: ${file.getPath()}`);
}
};
// ✅ Add a custom method (e.g., logging the file path)
file.addMethod("logPath", function () {
console.log("File is at:", this.getPath());
return this;
});
// ✅ Chainable file operations
(async () => {
file
.rename("renamed.txt") // Renames file
.invokeMethod("logPath") // Logs new file path
.move("./testFolder/moved") // Moves file to a new folder
.copy("./backup") // Creates a copy in the backup folder
.append("\nMore content added.") // Appends text to the file
.delete(); // Deletes the file
console.log("📄 Compressed File Content:", file.getInfo());
console.log("📑 File Metadata:", file.getMetaInfo());
console.log("📂 Files in directory:", file.list());
})();
This file management system offers multiple operations for handling files and folders.
Method | Description | Example |
---|---|---|
rename(newName: string) |
Renames the file | file.rename("newName.txt") |
move(destination: string) |
Moves the file to a new directory | file.move("./newFolder") |
copy(destination: string) |
Copies the file to a new location | file.copy("./backup") |
delete() |
Deletes the file permanently | file.delete() |
writeFile(content: string) |
Writes new content to the file (overwrites existing content) | file.writeFile("Hello, world!") |
append(content: string) |
Appends new content to the file | file.append("\nNew content") |
Method | Description | Example |
---|---|---|
syncExist() |
Checks if a file or folder exists | if (file.syncExist()) {...} |
sync() |
Ensures the directory exists (creates it if missing) | file.sync() |
list() |
Lists all files in the directory | console.log(file.list()) |
Method | Description | Example |
---|---|---|
getInfo() |
Reads and compresses the entire file content | console.log(file.getInfo()) |
getMetaInfo() |
Retrieves metadata such as size, creation date, and modification date | console.log(file.getMetaInfo()) |
Method | Description | Example |
---|---|---|
errorOnFound = (error) => {...} |
Custom error handling (e.g., auto-create files) | file.errorOnFound = (err) => {...} |
addMethod(name, method) |
Adds a custom chainable method | file.addMethod("customMethod", function () {...}) |
invokeMethod(name, ...args) |
Calls a custom method dynamically | file.invokeMethod("customMethod") |
-
Install the package
npm install filemanagementsystemfornode
-
Run the script
npm run start
-
Modify settings
-
Change file paths in
src/main.ts
to test different operations. -
Modify core functionality in
src/Wrapper
if necessary.
-
Change file paths in
This project is open-source and free to use.
We plan to add:
- 🔹 File encryption support (AES, RSA encryption for file security)
- 🔹 File versioning (track changes over time)
- 🔹 Logging & monitoring system (track operations in a log file)
🚀 Enjoy simplified file management with powerful chaining!
Feel free to suggest new features or improvements! 🎯
WhitzScott - Developer of the File Management System.
If you have questions or ideas, feel free to reach out!