eolas/neuron/d64aa559-4490-4b05-bfd9-4fd535f23109/fs.md
2025-03-26 19:03:17 +00:00

100 lines
1.8 KiB
Markdown

---
tags:
- node-js
---
# fs module
File System is an essential built-in module of Node that contains utility
methods for working with files and directories.
Every method associated with `fs` has a _blocking_ and _asynchronous_
implementation. The former obviously blocks the
[event queue](Event_loop.md), the
latter does not.
The synchronous methods are useful to have in some contexts but in general and
with real-world applications, you should be using the async implementation so as
to accord with the single-threaded event-driven architecture of Node.
## Common I/0 methods
### Read directory
Return a string array of all files in the current directory.
```js
fs.readdir("./", function (err, files) {
if (err) {
console.error(err);
} else {
console.log(files);
}
});
```
### Read from file
```js
fs.readFile("./lorem.md", "UTF-8", function (err, fileContents) {
console.log(fileContents);
});
```
### Write to file
```js
let md = `A new file`;
fs.writeFile("testFile.md", md.trim(), function () {
console.log("File was created");
});
```
### Appending to file
```js
fs.appendFile("testFile.md", "new content");
```
### Create directory
```js
if (!fs.existsSync("directory_name")) {
fs.mkdir("directory_name", function (err) {
if (err) {
console.err(err);
}
});
} else {
console.warn("Directory already exists");
}
```
### Rename and remove files
```js
fs.rename("./filename.js", "./newname.js", function () {
console.log("file renamed");
});
```
```js
// Remove file
fs.unlink("./file-to-delete", function (err) {
if (err) {
console.error(err);
}
});
```
### Rename and remove directories
```js
// Best to use synchronous method here
fs.rmSync("/dir", { recursive: true, force: true });
```
## Streams
See [Handling streams with fs](Streams_in_NodeJS.md)