如何使用node.js删除文件?
http://nodejs.org/api/fs.html#fs_fs_rename_oldpath_newpath_callback
我没有看到删除命令?
#1楼
您可以拨打fs.unlink(path, callback)
异步取消链接(2)或fs.unlinkSync(path)
用于同步的unlink(2)。
其中path
是要删除的文件路径。
例如,我们要从c:/book
目录中删除discovery.docx
文件。 所以我的文件路径是c:/book/discovery.docx
。 因此,用于删除该文件的代码将是
var fs = require('fs');
var filePath = 'c:/book/discovery.docx';
fs.unlinkSync(filePath);
#2楼
这是我为此目的制作的一小段代码,
var fs = require('fs');
var gutil = require('gulp-util');
fs.exists('./www/index.html', function(exists) {
if(exists) {
//Show in green
console.log(gutil.colors.green('File exists. Deleting now ...'));
fs.unlink('./www/index.html');
} else {
//Show in red
console.log(gutil.colors.red('File not found, so not deleting.'));
}
});
#3楼
如果要在删除前检查文件是否存在。 因此,请使用fs.stat或fs.statSync ( Synchronous )代替fs.exists
。 因为根据最新的node.js 文档 , 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');
});
});
#4楼
这里是您可以从文件夹中删除文件/图像的代码。
var fs = require('fs');
Gallery.findById({ _id: req.params.id},function(err,data){
if (err) throw err;
fs.unlink('public/gallery/'+data.image_name);
});
#5楼
我认为您不必检查文件是否存在, 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`);
}
});
#6楼
作为可接受的答案,使用fs.unlink
删除文件。
但是根据Node.js文档
不建议在调用
fs.open()
,fs.readFile()
或fs.writeFile()
之前使用fs.stat()
检查文件是否存在。 而是,用户代码应直接打开/读取/写入文件,并在文件不可用时处理引发的错误。要检查文件是否存在而不随后
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');
});
#7楼
您可以使用del模块删除当前目录中的一个或多个文件。 这样做的好处是可以防止您删除当前的工作目录及更高版本。
const del = require('del');
del(['<your pathere here>/*']).then( (paths: any) => {
console.log('Deleted files and folders:\n', paths.join('\n'));
});
#8楼
使用NPM模块fs-extra ,它可以为您提供fs中的所有内容,而且所有内容都是Promisified的。 另外,还有一个fs.remove()方法可用。
#9楼
在我的代码下面,这很好用。
const fs = require('fs');
fs.unlink(__dirname+ '/test.txt', function (err) {
if (err) {
console.error(err);
}
console.log('File has been Deleted');
});
#10楼
您可以使用fs.unlink(path,callback)函数。 这是带有“错误返回”模式的函数包装器的示例:
// 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'); } }) };
#11楼
从目录中删除与regexp匹配的文件名文件。 仅使用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])
}
}
});
#12楼
我认为您想使用fs.unlink
。
关于fs
更多信息可以在这里找到。
#13楼
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
#14楼
使用fs非常简单。
var fs = require('fs');
try{
var sourceUrls = "/sampleFolder/sampleFile.txt";
fs.unlinkSync(sourceUrls);
}catch(err){
console.log(err);
}
#15楼
2019和Node 10+在这里。 下面的版本使用甜蜜的异步/等待方式。
现在,无需将fs.unlink
包装到Promises中,也不再需要使用其他软件包(如fs-extra
)。
只需使用本机fs Promises API即可 。
const fs = require('fs').promises;
(async () => {
try {
await fs.unlink('~/any/file');
} catch (e) {
// file doesn't exist, no permissions, etc..
// full list of possible errors is here
// http://man7.org/linux/man-pages/man2/unlink.2.html#ERRORS
console.log(e);
}
})();
这是 Node docs的fsPromises.unlink
规范。
还请注意,fs.promises API在Node 10.xx中标记为实验性的(但可以正常工作),并且自11.14.0
起不再实验11.14.0
。