如何使用node.js删除文件?
http://nodejs.org/api/fs.html#fs_fs_rename_oldpath_newpath_callback
我没有看到删除 命令 </跨度> ?
从匹配regexp for filename的目录中删除文件。仅使用fs.unlink - 删除文件fs.readdir - 从目录中获取所有文件
var fs = require('fs'); const path = '/path_to_files/filename.anyextension'; const removeFile = (fileName) => { fs.unlink(`${path}${fileName}`, function(error) { if (error) { throw error; } console.log('Deleted filename', fileName); }) } const reg = /^[a-zA-Z]+_[0-9]+(\s[2-4])+\./ fs.readdir(path, function(err, items) { for (var i=0; i<items.length; i++) { console.log(items[i], ' ', reg.test(items[i])) if (reg.test(items[i])) { console.log(items[i]) removeFile(items[i]) } } });
作为公认的答案,请使用 fs.unlink 删除文件。
fs.unlink
但根据 Node.js文档
运用 fs.stat() 在调用之前检查文件是否存在 fs.open() , fs.readFile() 要么 fs.writeFile() 不推荐。相反,用户代码应直接打开/读取/写入文件,并在文件不可用时处理引发的错误。 要检查文件是否存在而不进行操作, fs.access() 被推荐。
运用 fs.stat() 在调用之前检查文件是否存在 fs.open() , fs.readFile() 要么 fs.writeFile() 不推荐。相反,用户代码应直接打开/读取/写入文件,并在文件不可用时处理引发的错误。
fs.stat()
fs.open()
fs.readFile()
fs.writeFile()
要检查文件是否存在而不进行操作, fs.access() 被推荐。
fs.access()
检查文件是否可以删除,使用 fs.access 代替
fs.access
fs.access('/etc/passwd', fs.constants.R_OK | fs.constants.W_OK, (err) => { console.log(err ? 'no access!' : 'can read/write'); });
下面我的代码工作正常。
const fs = require('fs'); fs.unlink(__dirname+ '/test.txt', function (err) { if (err) { console.error(err); } console.log('File has been Deleted'); });
我想你想用 fs.unlink 。
更多信息 fs 可以被找寻到 这里 。
fs
使用 NPM模块fs-extra ,它给你fs的一切,加上一切都是Promisified。作为奖励,有一个 fs.remove()方法 可用。
fs-extra 提供了一种删除方法:
fs-extra
const fs = require('fs-extra') fs.remove('/tmp/myfile') .then(() => { console.log('success!') }) .catch(err => { console.error(err) })
https://github.com/jprichardson/node-fs-extra/blob/master/docs/remove.md
您可以使用 德尔 模块删除当前目录中的一个或多个文件。它的好处是保护您不要删除当前的工作目录及以上。
const del = require('del'); del(['<your pathere here>/*']).then( (paths: any) => { console.log('Deleted files and folders:\n', paths.join('\n')); });
这里是您可以从文件夹中删除文件/图像的代码。
var fs = require('fs'); Gallery.findById({ _id: req.params.id},function(err,data){ if (err) throw err; fs.unlink('public/gallery/'+data.image_name); });
你可以用 fs.unlink(路径,回调) 功能。以下是具有“错误返回”模式的函数包装器的示例:
// Dependencies. const fs = require('fs'); // Delete a file. const deleteFile = (filePath, callback) => { // Unlink the file. fs.unlink(filePath, (error) => { if (!error) { callback(false); } else { callback('Error deleting the file'); } }) };
我认为你不必检查文件是否存在, fs.unlink 会为你检查。
fs.unlink('fileToBeRemoved', function(err) { if(err && err.code == 'ENOENT') { // file doens't exist console.info("File doesn't exist, won't remove it."); } else if (err) { // other errors, e.g. maybe we don't have enough permission console.error("Error occurred while trying to remove file"); } else { console.info(`removed`); } });
如果要在删除之前检查文件是否存在。所以,使用 fs.stat 要么 fs.statSync ( 的 同步 强> ) 代替 fs.exists 。因为根据最新的node.js 文件 , fs.exists 现在 的 弃用 强> 。
fs.exists
例如:-
fs.stat('./server/upload/my.csv', function (err, stats) { console.log(stats);//here we got all information of file in stats variable if (err) { return console.error(err); } fs.unlink('./server/upload/my.csv',function(err){ if(err) return console.log(err); console.log('file deleted successfully'); }); });
你可以打电话 fs.unlink(path, callback) for Asynchronous unlink(2)或 fs.unlinkSync(path) for Synchronous unlink(2)。 哪里 path 是要删除的文件路径。
fs.unlink(path, callback)
fs.unlinkSync(path)
path
例如,我们想删除 discovery.docx 来自的文件 c:/book 目录。所以我的文件路径是 c:/book/discovery.docx 。所以删除该文件的代码将是,
discovery.docx
c:/book
c:/book/discovery.docx
var fs = require('fs'); var filePath = 'c:/book/discovery.docx'; fs.unlinkSync(filePath);