2012-10-30 3 views
3

후 나는 다른 폴더 (같은 디스크)로 이동하려고하고 난 창문과 사용에 THIE 오류를Node.js를 fs.rename() 오류 ENOENT

{[Error:ENOENT,rename 'F\myproject\1b231234nsdifhoi2323'] 
    errno:34, 
    code:ENOENT, 
    path:'F\\myproject\\1b231234nsdifhoi2323' 
} 

오전있어

app.use(express.bodyParser({ 
    uploadDir:'./Temp' 
})); 

여기에 내 이름 바꾸기 코드

내가 경로가 잘못 것 같습니다
exports.upload = function(req, res,next){ 
    console.log(req.body); 
    console.log(req.files); 
    var tmp_path = req.files.product_video.path; 
    var target_path = '\\Video\\' + req.files.product_video.name; 

    console.log(tmp_path);  // Temp\1b231234nsdifhoi2323 
    console.log(target_path); // \Video\name 

    fs.rename(tmp_path, target_path, function(err) { 
     if (err) { 
      console.log(err) 
     }; 
     fs.unlink(tmp_path, function() { 
      if (err){ 
       console.log(err) 
      }else{ 
       res.send('File uploaded to: ' + target_path + ' - ' + req.files.product_video.size + ' bytes'); 

      } 
     }); 
    }); 
}; 

입니다,하지만 난 그것을 알아낼 수 없습니다!

+2

Windows 사용자입니까? 그렇다면'F :'경로명의 드라이브 부분에 콜론 (':')을 포함시켜야합니다. –

+0

하지만 Temp 및 Video 폴더는 동일한 디스크 – paynestrike

+0

에 있습니다. var target_path = 'F : \\ myproject \\ Video \\'+ req.files.product_video.name; it works thanx – paynestrike

답변

2

경로가 없기 때문에 파일 인 에 액세스하고 있습니다. 작동하지 않는 경우
변화 "F\myproject\1b2""F:/myproject/1b2"에 또는 "F:\myproject\1b2"

, 사용 :

은 한번에 편집 경로
__dirname + "/../../myproject\1b2"

(__dirname 스크립트의 상대 경로를 만들 것입니다) 디버깅 용 :
시도해보십시오. read이 f ILE -

+0

침대를 사용하는 것이 더 낫습니다. 그게 오타에 대한 오타예요? – Val

+0

: D 고정. 예, 오타였습니다. –

0

, 그렇게는 OS에 따라 슬래시 \을 처리 할 path.sep을 사용할 수 있습니다 슬래시 문제를 방지하려면 (이 같은 오류를 얻을 경우 그 경로가 나쁜 의미 rename 괜찮습니다).

관련 문제