2016-06-10 7 views
0

이것은 매우 간단한 질문이지만 많은 문제를 일으 킵니다. 내 로컬 파일 시스템에서 원본에서 대상으로 파일을 이동하려고합니다.HTML FIleSystem API를 사용하여 src에서 dest로 파일 이동

HTML5 FileSystem API를 사용하고 있습니다. 요청 된 파일이나 디렉토리가 작업이 처리 된 시간에 찾을 수 없습니다 -

// Note: The file system has been prefixed as of Google Chrome 12: 
window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem; 

// window.requestFileSystem(type, size, successCallback, opt_errorCallback) 

window.requestFileSystem(window.TEMPORARY, 1024 * 1024, (fs) => { 
      this.copyResouce(fs.root, "/home/user/Escritorio/img.png", this.AppConfig.DEFAULT_RESOURCE_PATH + "img/"); 
     }, this.errorHandler); 

private copyResouce(cwd, src, dest) { 
     cwd.getFile(src, {}, (fileEntry) => { 
      cwd.getDirectory(dest, {}, (dirEntry) => { 
        fileEntry.copyTo(dirEntry); 
       }); 
      }, this.errorHandler); 
     } 

하지만 NOT_FOUND_ERR 받고 있어요 : 이것은 내 코드입니다.

전자 응용 프로그램에서 AngularJS + Typescript가있는 스택을 사용하고 있습니다.

아이디어가 있으십니까?

건배,

+0

노드 모듈 (fs)을 사용할 수 있지만 파일 시스템 경로를 window.requestLocalFilesystemURL (fs.root, resolve, reject)로 전달할 수 있는지 확실하지 않은 경우 일반적으로 발생하는 권한, 저장 또는 보안 문제없이 api가 항상 작동했습니다. 웹킷 저장소 사용 –

답변

1

아벨 당신은 당신의 시험을 위해 크롬을 사용하고 있습니까? please read http://lists.w3.org/Archives/Public/public-webapps/2014AprJun/0010.html 이 API는 W3C에서 사용되지 않으며 크롬이 아닌 모든 탐색기에 구현되지 않습니다.

사용 가능한 파일도 샌드 박스에 있습니다. 파일이 그 안에 있는지 확실합니까?

0

전자는 1 행의 window.requestFileSystem을 사용하지만 2 행의 경우 웹킷 기반 경로 (window.temporary)를 전달합니다. 대신 로컬 파일 시스템 루트 경로를 전달해야한다고 생각합니다. 나는 fs 노드 모듈을 추가 할 수 있고 window.temporary 대신 fs.root를 전달할 수 있다고 생각한다. (루트는 플랫폼에 따라 다르다. 전자에서는 file:///temporary/이라고 생각한다.) 대부분의 경우 작동 할 것이다.