Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cordova 3.3 - fileSystem.root.fullPath returns "/" instead of full path

I had a piece of code working with Cordova 2.7. I upgraded my app to Cordova 3.3 along with upgrading all the custom plugins I developed.

I was successfully able to get the full absolute path of the Documents directory on iOS with Cordova 2.7, but with Cordova 3.3 it just returns / for the fullPath

Here is my code:

window.requestFileSystem  = window.requestFileSystem || window.webkitRequestFileSystem;
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);

function gotFS(fileSystem) {
    alert("entered gotFS: " + fileSystem.root.fullPath);
}

I tested this on iPad Simulator 7.0 (which was giving correct results with Cordova 2.7)

Although, I can get the path with other methods, I would prefer to use the Cordova API.

The API documentation doesn't mention anything about this. Any idea what could be wrong?

like image 313
Mahendra Liya Avatar asked Feb 26 '14 09:02

Mahendra Liya


2 Answers

try changing fullpath to toURL() and test

window.requestFileSystem  = window.requestFileSystem || window.webkitRequestFileSystem;
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);

function gotFS(fileSystem) {
  alert("entered gotFS: " + fileSystem.root.toURL());
}
like image 82
Divesh Salian Avatar answered Oct 26 '22 15:10

Divesh Salian


Since few users requested for my answer, here is how I managed to get the Documents directory path:

var documentsDirectoryPath = decodeURIComponent(window.location.href);
documentsDirectoryPath = documentsDirectoryPath.substring("file://".length);
documentsDirectoryPath = documentsDirectoryPath.substring(0, documentsDirectoryPath.indexOf("/<<YOUR_APP_NAME>>.app/www/index.html"));
documentsDirectoryPath += "/Documents";

Remember to replace YOUR_APP_NAME with your app's name

like image 5
Mahendra Liya Avatar answered Oct 26 '22 17:10

Mahendra Liya