Temporary Files And Directories in JavaScript
In JavaScript, we can create temporary files and directories using the fs
(File System) module. Here’s how we can achieve similar functionality:
const fs = require('fs');
const os = require('os');
const path = require('path');
function check(err) {
if (err) throw err;
}
// Create a temporary file
const tempFile = fs.mkdtempSync(path.join(os.tmpdir(), 'sample-'));
const tempFilePath = path.join(tempFile, 'tempfile');
fs.writeFileSync(tempFilePath, 'Some data');
console.log('Temp file name:', tempFilePath);
// Clean up the file after we're done
process.on('exit', () => {
fs.unlinkSync(tempFilePath);
fs.rmdirSync(tempFile);
});
// Write some data to the file
fs.writeFileSync(tempFilePath, Buffer.from([1, 2, 3, 4]));
// Create a temporary directory
const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'sampledir-'));
console.log('Temp dir name:', tempDir);
// Clean up the directory after we're done
process.on('exit', () => {
fs.rmdirSync(tempDir, { recursive: true });
});
// Create a file in the temporary directory
const fname = path.join(tempDir, 'file1');
fs.writeFileSync(fname, Buffer.from([1, 2]));
This JavaScript code demonstrates how to work with temporary files and directories:
We use the
fs.mkdtempSync()
function to create a temporary directory with a unique name. This is similar toos.CreateTemp
in the original example.We create a file within this temporary directory using
fs.writeFileSync()
.We use
process.on('exit', ...)
to set up cleanup operations that will run when the script exits. This is analogous to usingdefer
in the original code.We demonstrate writing data to the temporary file using
fs.writeFileSync()
.We create another temporary directory using
fs.mkdtempSync()
, which is similar toos.MkdirTemp
in the original example.Finally, we create a file within the temporary directory, similar to the original example.
Note that in JavaScript, we need to manually handle the cleanup of temporary files and directories. We use the process.on('exit', ...)
event to ensure these cleanup operations occur when the script exits.
To run this script:
$ node temp-files-and-directories.js
Temp file name: /tmp/sample-abc123/tempfile
Temp dir name: /tmp/sampledir-xyz789
The exact output will vary as the generated names are unique for each run.