How to touch a file in Node.js: https://remarkablemark.org/blog/2017/12/17/touch-file-nodejs/
// callback | |
const { close, open, utimes } = require('fs'); | |
const touch = (path, callback) => { | |
const time = new Date(); | |
utimes(path, time, time, err => { | |
if (err) { | |
return open(path, 'w', (err, fd) => { | |
err ? callback(err) : close(fd, callback); | |
}); | |
} | |
callback(); | |
}); | |
}; | |
// usage | |
const filename = 'file.txt'; | |
touch(filename, err => { | |
if (err) throw err; | |
console.log(`touch ${filename}`); | |
}); |
// promise | |
const { close, open, utimes } = require('fs'); | |
const touch = path => { | |
return new Promise((resolve, reject) => { | |
const time = new Date(); | |
utimes(path, time, time, err => { | |
if (err) { | |
return open(path, 'w', (err, fd) => { | |
if (err) return reject(err); | |
close(fd, err => (err ? reject(err) : resolve(fd))); | |
}); | |
} | |
resolve(); | |
}); | |
}); | |
}; | |
// usage | |
const filename = 'file.txt'; | |
touch(filename) | |
.then(fd => console.log(`touch ${filename}`)) | |
.catch(err => { | |
throw err; | |
}); |
// sync | |
const { closeSync, openSync, utimesSync } = require('fs'); | |
const touch = path => { | |
const time = new Date(); | |
try { | |
utimesSync(path, time, time); | |
} catch (err) { | |
closeSync(openSync(path, 'w')); | |
} | |
} | |
// usage | |
const filename = 'file.txt'; | |
touch(filename); | |
console.log(`touch ${filename}`); |
This comment has been minimized.
This comment has been minimized.
You have my permission to use this in your project (credit is appreciated). Although the code is unlicensed, you can treat it as MIT:
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This comment has been minimized.
can I use these in my project? What license are they published under?