我如何删除一个文件与node.js?
http://nodejs.org/api/fs.html#fs_fs_rename_oldpath_newpath_callback
我没有看到删除命令?
我如何删除一个文件与node.js?
http://nodejs.org/api/fs.html#fs_fs_rename_oldpath_newpath_callback
我没有看到删除命令?
当前回答
我认为你不需要检查文件是否存在,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`);
}
});
其他回答
您可以使用del模块删除当前目录中的一个或多个文件。它的好处是可以保护您不删除当前工作目录和以上目录。
const del = require('del');
del(['<your pathere here>/*']).then( (paths: any) => {
console.log('Deleted files and folders:\n', paths.join('\n'));
});
作为公认的答案,使用fs。断开链接删除文件。
但根据Node.js文档
不建议在调用fs.open()、fs.readFile()或fs.writeFile()之前使用fs.stat()检查文件是否存在。相反,用户代码应该直接打开/读取/写入文件,并在文件不可用时处理引发的错误。 要检查一个文件是否存在而不进行操作,建议使用fs.access()。
检查文件是否可以删除,使用fs。访问相反
fs.access('/etc/passwd', fs.constants.R_OK | fs.constants.W_OK, (err) => {
console.log(err ? 'no access!' : 'can read/write');
});
2022的答案
不要在Nodejs中做任何同步操作
若要异步删除文件,
const { unlink } = require('fs/promises');
(async function(path) {
try {
await unlink(path);
console.log(`successfully deleted ${path}`);
} catch (error) {
console.error('there was an error:', error.message);
}
})('/tmp/hello');
裁判:https://nodejs.org/api/fs.html # promise-example
建议在使用access或stat删除前检查文件是否存在
import { access, constants } from 'fs';
const file = 'package.json';
// Check if the file exists in the current directory.
access(file, constants.F_OK, (err) => {
console.log(`${file} ${err ? 'does not exist' : 'exists'}`);
});
裁判:https://nodejs.org/api/fs.html # fsaccesspath-mode-callback
这是我为此制作的一个小片段,
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.'));
}
});
fs.unlinkSync()如果你想同步删除文件 Fs.unlink()如果你想异步删除它。
在这里你可以找到一篇好文章。