我一直致力于一个需要定期更新关联和数据库的项目。我坚持删除文件。 我为此目的使用了fs.unlink fs,但它会引发一些错误。
代码段 -
fs.unlinkSync("/images/uploadedImages/70c9c2c4-74de-41c1-b096-c403b749a1a9.png");
sails.log.info("Logo deleted succesfully");
错误日志 -
fs.js:932
return binding.unlink(pathModule._makeLong(path));
Error: ENOENT: no such file or directory, unlink '/images/uploadedImages/70c9c2c4-74de-41c1-b096-c403b749a1a9.png'
文件70c9c2c4-74de-41c1-b096-c403b749a1a9.png也存在于路径/ images / uploadedImages /中,它位于sailsjs结构的assets文件夹中。
有没有办法实现这个目标?
答案 0 :(得分:0)
您传递给fs.unlinkSync()
的文件似乎不存在
确保你有这个文件
然后它会起作用。/images/uploadedImages/70c9c2c4-74de-41c1-b096-c403b749a1a9.png
答案 1 :(得分:0)
找出问题所在。 Sailsjs框架并没有开始在它自己的资源文件夹中搜索路径。
将路径从 - /images/uploadedImages/70c9c2c4-74de-41c1-b096-c403b749a1a9.png
更改为./assets/images/uploadedImages/70c9c2c4-74de-41c1-b096-c403b749a1a9.png
可以解决问题。
答案 2 :(得分:0)
如果仍然有人找到答案,那么如果要对文件进行一些操作,下面的方法可能是个好方法。
使用fs.access,可以在对文件进行任何操作之前检查文件是否可用。人们也可以将fs.accessSync用于同步行为。
在下面的示例中,我使用了fs.unlink,但也可以使用fs.unlinkSync删除文件。
// import in file
const fs = require('fs')
// path of your file
let path = 'path to your file'
// fs.access will check if file is available or not
fs.access(path, fs.F_OK, (err) => {
if (err) {
console.error(err)
return
}
//file exists, Go for delete operation
fs.unlink(path , function (err) {
if (err) {
console.error(err);
return
}
console.log('Image File has been Deleted');
});
})