Fix directory writable check (fs.access not working on Windows)

This commit is contained in:
mikiher 2023-12-14 09:47:18 +02:00
parent 6f6395bad7
commit 8f7a420cca
3 changed files with 30 additions and 15 deletions

View file

@ -354,3 +354,22 @@ module.exports.encodeUriPath = (path) => {
const uri = new URL(path, "file://")
return uri.pathname
}
/**
* Check if directory is writable.
* This method is necessary because fs.access(directory, fs.constants.W_OK) does not work on Windows
*
* @param {string} directory
* @returns {boolean}
*/
module.exports.isWritable = async (directory) => {
try {
const accessTestFile = path.join(directory, 'accessTest')
await fs.writeFile(accessTestFile, '')
await fs.remove(accessTestFile)
return true
} catch (err) {
return false
}
}