development

node.js 파일 제거

big-blog 2020. 2. 11. 22:36
반응형

node.js 파일 제거


node.js로 파일을 어떻게 삭제합니까?

http://nodejs.org/api/fs.html#fs_fs_rename_oldpath_newpath_callback

제거 명령이 보이지 않습니까?


나는 당신이 사용하고 싶다고 생각합니다 fs.unlink.

자세한 내용 fs여기를 참조하십시오 .


fs.unlink(path, callback)비동기 unlink (2) 또는 fs.unlinkSync(path)동기 unlink (2)를 호출 할 수 있습니다 . 제거하려는 파일 경로는
어디에 있습니까 path?

예를 들어 디렉토리 discovery.docx에서 파일 을 제거하려고합니다 c:/book. 그래서 내 파일 경로는 c:/book/discovery.docx입니다. 해당 파일을 제거하는 코드는

var fs = require('fs');
var filePath = 'c:/book/discovery.docx'; 
fs.unlinkSync(filePath);

존재 여부를 삭제하기 전에 파일을 확인하려는 경우. 따라서 대신 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');
   });  
});

이 목적을 위해 만든 작은 조각이 있습니다.

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.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.unlink파일을 삭제 하는 데 사용하십시오.

그러나 Node.js 문서 에 따르면

사용 fs.stat()호출하기 전에 파일의 존재 여부를 확인하는 fs.open(), fs.readFile()또는 fs.writeFile()사용하지 않는 것이 좋습니다. 대신, 사용자 코드는 파일을 직접 열고 / 읽고 / 쓰고 파일을 사용할 수없는 경우 발생한 오류를 처리해야합니다.

나중에 파일을 조작하지 않고 파일이 존재하는지 확인하려면 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');                           
          });                                                            

del 모듈을 사용 하여 현재 디렉토리에서 하나 이상의 파일을 제거 할 수 있습니다 . 좋은 점은 현재 작업 디렉토리 이상을 삭제하지 않도록 보호한다는 것입니다.

const del = require('del');
del(['<your pathere here>/*']).then( (paths: any) => {
   console.log('Deleted files and folders:\n', paths.join('\n'));
});

fs.unlink (path, callback) 함수를 사용할 수 있습니다 . 다음은 "error-back"패턴을 가진 함수 래퍼의 예입니다.

// 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');
    }
  })
};


filename의 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]) 
        }
    }
});

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


사용 NPM 모듈 FS-추가 FS 당신에게 모든 것을 제공, 플러스 모든 Promisified입니다. 보너스로 fs.remove () 메소드를 사용할 수 있습니다.


fs를 사용하면 매우 쉽습니다.

var fs = require('fs');
try{
 var sourceUrls = "/sampleFolder/sampleFile.txt";
 fs.unlinkSync(sourceUrls);
}catch(err){
 console.log(err);
}

폴더에서 파일 / 이미지를 삭제할 수있는 코드입니다.

var fs = require('fs'); 
Gallery.findById({ _id: req.params.id},function(err,data){ 
    if (err) throw err;
    fs.unlink('public/gallery/'+data.image_name);
 });

참고 URL : https://stackoverflow.com/questions/5315138/node-js-remove-file



반응형