2014-05-15 4 views
5

나는 Cordova 소스 코드를보고 뭔가를 알아 내려고하고 있으며, 현재 여섯 대체 방법/속성을 사용하여 파일 경로에 액세스하고 있습니다. 현재 (아이폰 OS를 사용하여 실행)코르도바 - FileSystem - 왜 그렇게 많은 경로 대안?

가있다 :

// Properties 
file.fullPath; // file:///full/path/syntax/file 
file.nativeURL; // file:///full/path/syntax/file 

// Method(s) 
file.toInternalURL(); // formats the file.fullPath into a cdvfile://localhost/persisten/file. 
file.toURL(); // if file.nativeURL is set, uses file.nativeURL, otherwise use file.toInternalURL() or file.fullPath. 

// Deprecated method(s) 
file.toURI(); // deprecated - calls file.toURL(); 
file.toNativeURL() // deprecated - calls file.toURL(); 

내가 두가되지 않습니다 이해 - file.toURL()에있는 두 점 - 그래서 내가 그들을 무시하고 단지 네 가지 방법을에 집중할 수 있습니다.

하지만 file.fullPathfile.nativeURL의 차이점은 무엇입니까? 둘 다 공개적으로 액세스 할 수있는 파일 객체의 두 속성입니다. 먼저 file.nativeURL하지 않을 경우 그 다음 file.toInternalURL() 또는 실패, file.fullPath -

는 지금까지 내가 말할 수있는, file.toURL()는이 두 가지를 사용합니다.

마지막으로 file.toNativeURL()cdvfile:// 서식이 지정된 위치를 반환합니다.

따라서 대부분의 방법은 file.nativeURL 속성을 가리 킵니다. file.toURL()은 모든 인스턴스를 처리하므로 사용하는 방법이 있습니까? 그렇다면 cdvfile://은 무엇입니까?

감사

답변

6

file.fullPath은 사양의 일부이며, 사실과 같아야합니다 : /path/relative/to/my/root. 그것이 file:///이라는 것을 알고 있다면 그것은 버그입니다.

file.nativeURL은 구현 세부 사항을 의미합니다. 그러나 슬프게도, 그것은 분명히 그러한 것으로 표시되어 있지 않습니다. 그것은 사양의 일부가 아니며 다른 플랫폼에도 존재하지 않습니다.

file.toURL() 가능성이 높습니다. 이는 사양의 일부이며 resolveLocalFileSystemURL에 전달할 수있는 URL을 제공하며 cdvfile: 개의 URL과 비교할 때 더 적은 수의 점수를 제공합니다.

file.toInternalURL()은 사양의 일부가 아니지만 코도 바 특정 확장입니다. 나는 이것이 쓸모있는 일이 될 것이라고 생각하지 않는다.

+0

Andrew - 서면으로, 나는 Cordova 3.3.0을 사용하고있었습니다. 현재 업그레이드하지는 않았지만 이것이 여전히 iOS의 경우인지 확인하고 확인합니다. – keldar