fs.unlink(path, callback)
以异步方式unlink(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);
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');
});
});
fs.unlink
,如果文件不存在,则回调中将出现一个ENOENT
错误。无需在尝试取消链接之前进行检查。" - ZachBfs.unlink
,所以我的看法是在删除之前检查文件。 - vineetunlink
回调中检查ENOENT错误代码即可。如果发生该错误,则文件不存在。请参考Searene的答案示例。 - ZachB2020年答案
随着Node v14.14.0
的发布,现在您可以做到这一点。
fs.rmSync("path/to/file", {
force: true,
});
force <boolean> 当为true时,如果路径不存在,异常将被忽略。默认值:false。
- ccalvertvar fs = require('fs');
。 - Michaelfs/promises
和await fs.rm(resultsFile, { force: true })
可能更好,以避免同步调用。 - undefined我认为你不需要检查文件是否存在,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`);
}
});
这是我为此目的创建的一个小片段,
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.exists
检查文件并在使用fs.unlink
删除文件之前,其他人删除了该文件,会发生什么?这种情况是可能发生的。 - Seareneunlink
,如果文件不存在,则处理 ENOENT
错误即可。否则会出现竞态条件。 - ZachB2019和Node 10+已经到来。以下是使用sweet async/await方式的版本。
现在不需要再将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文档的fsPromises.unlink
规范。
此外,请注意在Node 10.x.x中,fs.promises
API标记为实验性(但完全可用),并且自11.14.0
版本以后不再是实验性的。
您可以做以下事情
const deleteFile = './docs/deleteme.txt'
if (fs.existsSync(deleteFile)) {
fs.unlink(deleteFile, (err) => {
if (err) {
console.log(err);
}
console.log('deleted');
})
}
异步删除文件或符号链接。完成回调函数只接收可能的异常参数而没有其他参数。
fs.unlink()不能用于目录,无论是空目录还是非空目录。要删除目录,请使用fs.rmdir()。
简单而同步
if (fs.existsSync(pathToFile)) {
fs.unlinkSync(pathToFile)
}
下面是我的代码,它能够正常工作。
const fs = require('fs');
fs.unlink(__dirname+ '/test.txt', function (err) {
if (err) {
console.error(err);
}
console.log('File has been Deleted');
});
delete
别名! - Nickrmdir
方法,可以使用@PixnBits或rm
别名。 - Robinfs.unlinkSync()
。 - Erdal G.