How to use the readdirSync function from graceful-fs

Find comprehensive JavaScript graceful-fs.readdirSync code examples handpicked from public code repositorys.

graceful-fs.readdirSync is a function in the graceful-fs module that provides a more robust version of the fs.readdirSync function with better error handling and performance optimizations.

115
116
117
118
119
120
121
122
123
124
125
    .filter(ignoreFilesRegex(ignorePattern));
}


function _readAndFilterDirSync(path, options) {
  const { ignoreHidden = true, ignorePattern } = options;
  return fs.readdirSync(path, { ...options, withFileTypes: true })
    .filter(ignoreHiddenFiles(ignoreHidden))
    .filter(ignoreFilesRegex(ignorePattern));
}

fork icon9
star icon48
watch icon0

+ 31 other calls in file

85
86
87
88
89
90
91
92
93
94
95
    }, 50)
  }, 50)
})


test('cleanup', function (t) {
  fs.readdirSync(__dirname).filter(function (f) {
    return f.match(/^test.txt/)
  }).forEach(function (file) {
    fs.unlinkSync(path.resolve(__dirname, file))
  })
fork icon1
star icon1
watch icon0

How does graceful-fs.readdirSync work?

graceful-fs.readdirSync works by providing a more robust and performant version of the fs.readdirSync function.

When you call graceful-fs.readdirSync, it first checks if the target directory has been recently accessed or modified. If it has, it uses a cached version of the directory listing, rather than reading the directory again. This can improve performance by reducing the number of disk reads required to list the files in the directory.

If there is no cached version of the directory listing available, graceful-fs.readdirSync will attempt to read the directory using the fs.readdirSync function. If an error occurs during this process, graceful-fs.readdirSync will retry the operation up to a specified number of times, with a delay between each retry.

By using graceful-fs.readdirSync, developers can have greater confidence that their application will handle file system errors more gracefully and can potentially see improved performance when working with large directories or frequently accessed directories.

201
202
203
204
205
206
207
208
209
210
211
      }));
    });
}


function _readAndFilterDirSync(path, options) {
  return fs.readdirSync(path)
    .filter(ignoreHiddenFiles(options.ignoreHidden == null ? true : options.ignoreHidden))
    .filter(ignoreFilesRegex(options.ignorePattern))
    .map(item => {
      const fullPath = join(path, item);
fork icon0
star icon1
watch icon0

+ 31 other calls in file

79
80
81
82
83
84
85
86
87
88
fs.writeFileSync(path.join(src, 'some-file'), 'hi')

const dest = path.join(TEST_DIR, 'a-folder')

// verify dest has stuff in it
const paths = fs.readdirSync(dest)
assert(paths.indexOf('another-file') >= 0)
assert(paths.indexOf('another-folder') >= 0)

fse.move(src, dest, { overwrite: true }, err => {
fork icon802
star icon0
watch icon91

+ 3 other calls in file

Ai Example

1
2
3
4
5
6
7
8
9
10
11
const gracefulFs = require("graceful-fs");

const directoryPath = "./myFolder";

try {
  const files = gracefulFs.readdirSync(directoryPath);
  console.log("Files in directory:");
  console.log(files);
} catch (err) {
  console.error(err);
}

In this example, we use graceful-fs.readdirSync to list all files in the directory ./myFolder. We first import the graceful-fs module. We define a variable directoryPath that contains the path to the directory we want to list. We then use graceful-fs.readdirSync to read the contents of the directory and store the filenames in an array called files. We log a message to the console indicating that we are listing the files, and then log the contents of the files array to the console. If an error occurs while attempting to read the directory, we catch the error and log it to the console. By using graceful-fs.readdirSync, we can have greater confidence that our application will handle file system errors more gracefully and potentially see improved performance when working with large or frequently accessed directories.

17
18
19
20
21
22
23
24
25
26
27
const captureStdio = require("./helpers/captureStdio");
const asModule = require("./helpers/asModule");
const filterInfraStructureErrors = require("./helpers/infrastructureLogErrors");


const casesPath = path.join(__dirname, "configCases");
const categories = fs.readdirSync(casesPath).map(cat => {
	return {
		name: cat,
		tests: fs
			.readdirSync(path.join(casesPath, cat))
fork icon163
star icon0
watch icon24

+ 13 other calls in file

12
13
14
15
16
17
18
19
20
21
22
const deprecationTracking = require("./helpers/deprecationTracking");
const FakeDocument = require("./helpers/FakeDocument");


function copyDiff(src, dest, initial) {
	if (!fs.existsSync(dest)) fs.mkdirSync(dest);
	const files = fs.readdirSync(src);
	files.forEach(filename => {
		const srcFile = path.join(src, filename);
		const destFile = path.join(dest, filename);
		const directory = fs.statSync(srcFile).isDirectory();
fork icon163
star icon0
watch icon24

+ 27 other calls in file

121
122
123
124
125
126
127
128
129
130
131
132
  fs.chmodSync(dest, srcStat.mode)
  return copyDir(src, dest, opts)
}


function copyDir (src, dest, opts) {
  fs.readdirSync(src).forEach(item => copyDirItem(item, src, dest, opts))
}


function copyDirItem (item, src, dest, opts) {
  const srcItem = path.join(src, item)
fork icon0
star icon0
watch icon0

+ 2 other calls in file