node.js删除文件

如何使用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.statfs.statSyncSynchronous )代替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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值