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은 여기를 참조하십시오 .
rmFile
rm가있는 경우 별명rmdir
fs.unlinkSync()
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');
});
});
fs.unlink하며 파일이 존재하지 않으면 ENOENT콜백에 오류가 발생합니다. 연결을 해제하기 전에 확인할 필요가 없습니다.
fs.unlink파일이 존재하지 않을 때 삭제 작업이 수행되는 이유 는 제거하기 전에 파일을 확인하는 것입니다.
unlink콜백 에서 ENOENT 오류 코드를 확인하십시오 . 해당 오류가 발생하면 파일이 존재하지 않은 것입니다. 예를 들어 Searene의 대답을보십시오.
파일이 있는지 여부를 확인해야한다고 생각하지 않습니다. 파일을 확인하십시오 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어떻게됩니까? 일어날 수 있습니다.
unlink하고 존재하지 않는 경우 ENOENT오류를 처리하십시오 . 그렇지 않으면 경쟁 조건을 만들 수 있습니다.
허용되는 답변으로 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');
});
unlink파일을 삭제할 권한이 있다는 것을 알고 있기 때문에 직접 사용할 것 입니다. 그러나 fs.access삭제하기 전에 확인 해야하는 경우 좋은 대안입니다. 그러나 파일을 조작하지 않고 파일이 존재하는지 확인 해야하는 경우 자연스럽게 사용해야 fs.stat하며 fs.access겸손한 의견에 다른 목적을 가지고 있다고 생각합니다.
여기 내 코드 아래에서 잘 작동합니다.
const fs = require('fs');
fs.unlink(__dirname+ '/test.txt', function (err) {
if (err) {
console.error(err);
}
console.log('File has been Deleted');
});
2019 및 Node 10+가 여기 있습니다 . 달콤한 async / await 방법을 사용하는 버전 아래 .
이제 더 이상 fs.unlink약속 으로 포장 하거나 추가 패키지를 사용할 필요가 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);
}
})();
다음은 fsPromises.unlink 노드 문서의 사양입니다.
또한 fs.promise API는 Node 10.xx에서 실험으로 표시되었지만 (완전히 잘 작동하지만) 이후로는 실험적이지 않습니다 11.14.0.
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 () 메소드를 사용할 수 있습니다.
delete별명을 추가 할 수 있다고 생각합니다 !