title: Cordova - FileSystem - why so many path alternatives?
body: <p>I am just looking through the Cordova source code to try and figure something out, and there are currently <em>six</em> alternate methods/properties to access the path of a file.</p>
  
  <p>Currently (running using iOS), there is:</p>
  
  <pre><code>// 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();
  </code></pre>
  
  <p>I understand two are deprecated - which both point to <code>file.toURL()</code> - so I can ignore them and focus on just four methods.</p>
  
  <p>But what is the difference between <code>file.fullPath</code> and <code>file.nativeURL</code> - they are exactly the same? They are both properties on the file object - both publicly accessible.</p>
  
  <p>As far as I can tell, <code>file.toURL()</code> uses both of these - first <code>file.nativeURL</code> if not that, then <code>file.toInternalURL()</code> or failing that, then <code>file.fullPath</code>.</p>
  
  <p>Then finally, <code>file.toNativeURL()</code> returns a <code>cdvfile://</code> formatted location.</p>
  
  <p>So, most methods point to the <code>file.nativeURL</code> property. Is <code>file.toURL()</code> the method to use since it handles all instances? If so, then what on earth is <code>cdvfile://</code>?</p>
  
  <p>Thanks</p>