node.js 파일 제거
node.js가 있는 파일을 삭제하려면 어떻게 해야 합니까?
http://nodejs.org/api/fs.html#fs_fs_rename_oldpath_newpath_callback
제거 명령이 표시되지 않습니까?
당신이 사용하고 싶어하는 것 같습니다.
추가 정보:fs
여기서 찾을 수 있습니다.
전화할 수 있습니다.fs.unlink(path, callback)
비동기식 링크 해제(2) 또는fs.unlinkSync(path)
동기식 링크 해제(2).
어디에path
제거할 파일 경로입니다.
예를 들어 제거하려는 경우discovery.docx
에서 철하다.c:/book
디렉토리입니다.그래서 제 파일 경로는c:/book/discovery.docx
그래서 그 파일을 제거하는 코드는
var fs = require('fs');
var filePath = 'c:/book/discovery.docx';
fs.unlinkSync(filePath);
파일의 존재 여부를 삭제하기 전에 파일을 확인하려는 경우.따라서 다음 대신 fs.stators.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
확인해 드리겠습니다.
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`);
}
});
2020년 정답
노드의 릴리스와 함께v14.14.0
이제 할 수 있습니다.
fs.rmSync("path/to/file", {
force: true,
});
https://nodejs.org/api/fs.html#fsrmsyncpath-options
여기 이 목적을 위해 만든 작은 조각이 있습니다.
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.'));
}
});
2019년과 노드 10+가 왔습니다.sweet async/waitway를 사용한 버전 아래.
이제 포장할 필요가 없습니다.fs.unlink
추가 패키지를 사용하거나 사용하지 않는 약속(예:fs-extra
) 더 이상.
네이티브 fs Promise 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는 Node 10.x.x에서 실험으로 표시된 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)
}
허용된 답변으로 다음을 사용합니다.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');
});
2022년 정답
Nodejs에서 동기화 작업을 수행하지 않음
파일을 비동기적으로 삭제하려면,
const { unlink } = require('fs/promises');
(async function(path) {
try {
await unlink(path);
console.log(`successfully deleted ${path}`);
} catch (error) {
console.error('there was an error:', error.message);
}
})('/tmp/hello');
참조: https://nodejs.org/api/fs.html#promise-example
액세스 또는 stat를 사용하여 삭제하기 전에 파일이 있는지 확인하는 것이 좋습니다.
import { access, constants } from 'fs';
const file = 'package.json';
// Check if the file exists in the current directory.
access(file, constants.F_OK, (err) => {
console.log(`${file} ${err ? 'does not exist' : 'exists'}`);
});
참조: https://nodejs.org/api/fs.html#fsaccesspath-mode-callback
fs.unlinkSync()
을 동기적으로 와 파일을 제거하려는 경우fs.unlink()
비동기적으로 제거하려는 경우.
여기서 좋은 기사를 찾을 수 있습니다.
그저.rm -rf
그것
require("fs").rmSync(file_or_directory_path_existing_or_not, {recursive: true, force: true});
// Added in Node.js 14.14.0.
와 함께require("fs").rmSync
또는require("fs").rm
.
del 모듈을 사용하여 현재 디렉터리에서 하나 이상의 파일을 제거할 수 있습니다.좋은 점은 현재 작업 디렉터리 이상을 삭제하지 않도록 보호하는 기능입니다.
const del = require('del');
del(['<your pathere here>/*']).then( (paths: any) => {
console.log('Deleted files and folders:\n', paths.join('\n'));
});
fs.unlink(경로, 콜백) 기능을 사용할 수 있습니다.다음은 "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');
}
})
};
파일 이름에 대해 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는 매우 쉽습니다.
var fs = require('fs');
try{
var sourceUrls = "/sampleFolder/sampleFile.txt";
fs.unlinkSync(sourceUrls);
}catch(err){
console.log(err);
}
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
다음 코드를 사용하여 파일을 제거할 수 있습니다.
unlinkSync
:
import { unlinkSync } from 'fs';
다음과 같은 메서드를 만들 수 있습니다.
export const removeFileFromLocation = async (filePath: string) => {
const removeRes = await unlinkSync(filePath);
return removeRes;
}
이 방법을 다음과 같이 사용합니다.
const removeRes = await removeFileFromLocation(`${PATH_DOWNLOADED_FILE}/${sourceFileName}`);
console.log("removeFileFromLocation:",removeRes);
모든 정보를 제공하고 모든 것이 약속된 NPM 모듈 fs-extra를 사용합니다.보너스로 afs.remove() 메서드를 사용할 수 있습니다.
폴더에서 파일/이미지를 삭제할 수 있는 코드입니다.
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
'programing' 카테고리의 다른 글
Git에서 손실된 커밋을 복구하려면 어떻게 해야 합니까? (0) | 2023.05.16 |
---|---|
Git에서 현재 분기만 표시 (0) | 2023.05.16 |
확인란이 선택되어 있는지 여부를 jQuery (0) | 2023.05.16 |
모듈 내보내기 대 Node.js 및 ES6의 내보내기 기본값 (0) | 2023.05.16 |
PostgreSQL에서 정렬로 고정된 수의 행을 삭제하려면 어떻게 해야 합니까? (0) | 2023.05.16 |