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
별명을 추가 할 수 있다고 생각합니다 !