다음은 이 작업을 수행하는 데 사용하는 코드의 샘플 입니다. 그것은 안드로이드에서 가장 잘 작동, 아이폰 OS는 응용 프로그램 샌드 박싱으로 인해 조금 다른 그래서 당신은 직접 파일을 검색 을 처리 해야합니다. 나는 또한 응용 프로그램이 실행되는 장치를 결정하기 위해 Cordova 장치 플러그인을 사용하여, 나는 다음 맞게 저장 경로를 변경할 수 있습니다 : 응용 프로그램이 이전에 사용자에게 제공 된 경우,이 플러그인의 이전 (사전 – 3.0.0) 버전을 사용하여, 영구 파일 시스템에 파일을 저장한 경우, 당신은 당신의 config.xml이 파일 시스템에 대한 위치를 지정하지 않는 경우 호환성에 대한 기본 설정을 설정해야합니다. 위치를 «내부»로 전환하면 응용 프로그램을 업그레이드하는 기존 사용자가 장치에 따라 이전에 저장된 파일에 액세스하지 못할 수 있습니다. 코르도바의 작동 방식 때문에 우리는 코르도바 플러그인 파일, 코르도바 플러그인 파일 오프너2 및 파일 세이버가 필요합니다. cordova 플러그인 파일 플러그인은 우리에게 사용자의 파일 시스템에 대한 액세스를 제공하고, 코르도바 플러그인 – 파일 오프너2 플러그인은 외부 응용 프로그램 (예 : 단어, 엑셀 등)을 사용하여 파일을 여는 데 도움이됩니다. 브라우저 내부에서 실행할 때 파일 보호기를 사용하고 있습니다. 파일이 없는 경우 다운로드해야 합니다. 이를 위해 우리는 두 번째 플러그인, 파일 전송을 사용합니다.
이것은 혼란의 한 지점이 들어오는 곳입니다. 파일 및 디렉터리용 API를 가져오는 데 사용한 이전 DirectoryEntry 개체를 URL로 변환하여 다운로드 API에 대한 경로를 제공해야 합니다. 파일의 새(1.0.0 이상) 버전으로 업그레이드하는 경우 이전에 entry.fullPath를 다운로드() 또는 업로드(업로드)로 사용중인 경우 파일 시스템 URL을 대신 사용하려면 코드를 변경해야 합니다. 파일 전송 플러그인과 파일 플러그인을 사용하여 다운로드하는 파일에 대한 대상을 제공합니다(대상은 FileEntry 개체여야 합니다). 파일을 다운로드하기 전에 resolveLocalFileSystemURL을 사용하고 성공 콜백에서 fs.root를 호출하여 DirectoryEntry 개체를 만듭니다. 디렉터리엔트리의 getFile 메서드를 사용하여 대상 파일을 만듭니다. cordova.file.applicationStorageDirectory – 응용 프로그램의 샌드 박스의 루트 디렉토리; iOS 및 Windows에서 이 위치는 읽기 전용입니다(그러나 특정 하위 디렉터리 [iOS의 /문서 또는 windows의 /localState]는 읽기-쓰기입니다). 포함 된 모든 데이터는 응용 프로그램에 비공개입니다.
(아이폰 OS, 안드로이드, 블랙 베리 10, OSX) 내가 생각하는 디렉토리, cordova.file.applicationStorageDirectory, 잘못 아이폰 OS에서 쓸 수있는 것으로 문서화되어 있습니다. 이 실수를 해결하기 위해 끌어오기 요청이 이미 제출되었습니다. 내 응용 프로그램에 대 한 가장 적절 한 디렉토리는 다음, cordova.file.dataDirectory. 내 디렉토리 별칭이 있으면 디렉터리에 resolveLocalFileSystem을 사용하여 원하는 파일 이름이 있는지 확인할 수 있습니다. 세 번째 인수인 downloadAsset는 오류가 있을 때만 실행되며, 이 경우 파일이 존재하지 않습니다. sdkmanager 설명서 페이지를 참조하여 Android SDK 도구의 경로를 찾습니다. 시스템에서 파일이 실제로 있는지 확인합니다. 파일 전송 플러그인을 사용하여 파일을 업로드하고 다운로드할 수 있습니다. 이 예제에서는 다음과 같은 몇 가지 작업을 보여 줍니다. FileSystem URL에서 올바르게 작동하도록 업데이트되었기 때문에 entry.fullPath를 entry.toURL()으로 대체하면 해당 플러그인이 장치의 파일로 작동하도록 하는 문제가 해결됩니다.