File Organiser is a Node.js-based utility to organize files in a specified directory by their extensions. It creates folders for each file type (based on extension) and moves the files into their respective folders.
- Organizes files in a directory by file type.
- Automatically creates folders for each file type.
- Moves files into their corresponding folders.
- Handles errors gracefully.
-
Ensure you have Node.js installed on your system.
-
Clone or download this repository.
-
Navigate to the project directory:
cd node-file-organiser
-
Install dependencies if required (none specified in this implementation).
-
copy the
path
form the directory you want to organize:e.g = "C:\\Users\\YourUsername\\Documents";
-
Run the script using Node.js and enter the path you copied:
node index.js
or
npm i organiseme npx organiseme
-
The script will create folders for each file extension and move the corresponding files into them. For example:
Documents/ ├── txt-files/ │ └── example.txt ├── js-files/ └── script.js
-
Directory Reading: The script reads the contents of the specified directory:
const data = fs.readdirSync(path);
-
File Sorting: Files are categorized by their extensions:
const splitfile = file.split('.'); const doesextensionexist = Object.keys(dirdata).find((extension) => extension === `${splitfile[1]}`);
-
Folder Creation: Folders are created dynamically for each file type:
fs.mkdir(`${path}/${ext[0]}-files`, { recursive: true });
-
File Moving: Files are moved into their respective folders:
fs.renameSync(filepath, targetpath);
-
Errors during directory reading, folder creation, or file movement are logged to the console:
if (error) { console.log(error.message); }
- The script only processes files and ignores directories.
- Files without extensions are skipped.
- Ensure you have proper permissions to read, write, and move files in the target directory.
- Backup your data before running the script to avoid accidental file loss.
Contributions are welcome! Feel free to submit a pull request or open an issue to suggest improvements or report bugs.
This project is licensed under the MIT License. See the LICENSE file for details.
Happy organizing! Romaric250