node.js에서 mv 명령 쉘과 같은 파일을 어떻게 이동합니까? 그 방법이 있습니까? 아니면 파일을 읽고 새 파일에 쓰고 오래된 파일을 제거해야합니까?
답변
seppo0010 주석에 따르면 이름 바꾸기 기능을 사용했습니다.
http://nodejs.org/docs/latest/api/fs.html#fs_fs_rename_oldpath_newpath_callback
fs.rename (oldPath, newPath, 콜백)
추가 : v0.0.2
oldPath <String> | <Buffer> newPath <String> | <Buffer> callback <Function>
비동기 이름 바꾸기 (2). 완료 콜백에는 가능한 예외 이외의 인수가 제공되지 않습니다.
답변
이 예제는 Node.js in Action 에서 가져온 것입니다.
가능한 경우 이름을 바꾸거나 복사로 이동하는 move () 함수
var fs = require('fs');
module.exports = function move(oldPath, newPath, callback) {
fs.rename(oldPath, newPath, function (err) {
if (err) {
if (err.code === 'EXDEV') {
copy();
} else {
callback(err);
}
return;
}
callback();
});
function copy() {
var readStream = fs.createReadStream(oldPath);
var writeStream = fs.createWriteStream(newPath);
readStream.on('error', callback);
writeStream.on('error', callback);
readStream.on('close', function () {
fs.unlink(oldPath, callback);
});
readStream.pipe(writeStream);
}
}
답변
기본적으로 nodejs 사용
var fs = require('fs')
var oldPath = 'old/path/file.txt'
var newPath = 'new/path/file.txt'
fs.rename(oldPath, newPath, function (err) {
if (err) throw err
console.log('Successfully renamed - AKA moved!')
})
(참고 : “파티션을 가로 지르거나 파일 이동을 지원하지 않는 가상 파일 시스템을 사용하는 경우에는 작동하지 않습니다. […]” – Flavien Volken 9 월 2 일 15시 12 분 50 초 “
답변
먼저 mv 노드 모듈을 사용하여 fs.rename
복사를 시도한 다음 연결을 끊으십시오.
답변
util.pump
노드 0.10에서 더 이상 사용되지 않으며 경고 메시지를 생성합니다.
util.pump() is deprecated. Use readableStream.pipe() instead
따라서 스트림을 사용하여 파일을 복사하는 솔루션은 다음과 같습니다.
var source = fs.createReadStream('/path/to/source');
var dest = fs.createWriteStream('/path/to/dest');
source.pipe(dest);
source.on('end', function() { /* copied */ });
source.on('error', function(err) { /* error */ });
답변
이름 바꾸기 기능 사용 :
fs.rename(getFileName, __dirname + '/new_folder/' + getFileName);
어디
getFilename = file.extension (old path)
__dirname + '/new_folder/' + getFileName
파일 이름을 변경하지 않고 유지한다고 가정합니다.
답변
fs-extra
모듈은 그것의이 작업을 수행 할 수 있도록 move()
하는 방법. 이미 구현했으며 파일을 한 디렉토리에서 다른 디렉토리로 완전히 이동하려는 경우 잘 작동합니다. 소스 디렉토리에서 파일을 제거합니다. 대부분의 기본 사례에서 작동합니다.
var fs = require('fs-extra')
fs.move('/tmp/somefile', '/tmp/does/not/exist/yet/somefile', function (err) {
if (err) return console.error(err)
console.log("success!")
})
