Reputation: 87376
Does anyone know how to get the full path of a DirectoryEntry
object in a Chrome Packaged App, without any tildes or other shortcuts?
I am writing a Google Chrome Packaged App. My app has a button where a user can choose a directory using chrome.fileSystem API. When the directory choice comes back to my app, it is represented by a DirectoryEntry
object, which is defined in the File API. The object looks like this in the console:
DirectoryEntry {
filesystem: DOMFileSystem
fullPath: "/to_read"
isDirectory: true
isFile: false
name: "to_read"
__proto__: DirectoryEntry
}
I am using Windows and the full path of the directory is
C:\Users\David\Desktop\to_read
I would like a function that can return that path or something close. Unfortunately, the closest thing I found is chrome.fileSystem.getDisplayPath
, but that returns the following:
~\Desktop\to_read
The return value from getDisplayPath
is not useful to me, because I want to get the full name of the directory (including the drive) so I can compare it to some other full directory paths I have.
I tried calling toURL()
on the DirectoryEntry
and it returned an empty string.
A bit about my project: I want to write an iTunes library synchronizer as a Chrome Packaged App. The iTunes library XML file contains full paths like file://localhost/D:/David/Music/Bob/Bob%20Album/01%20Bob.mp3
. The user will give my app access to his music folders, and I want to be able to tell if he gave me access to the right folders.
Upvotes: 0
Views: 3636
Reputation: 87376
This is currently (2014-01-10) not a feature of Chrome, but I have suggested it and they are working on it:
https://code.google.com/p/chromium/issues/detail?id=322952
Upvotes: 0
Reputation: 3399
If you have a full path path/to/the/file.mp3
and you want to load the file directly with tis you can do it but the solution is not perfect. Use the chrome.mediaGalleries
API to ask where the user saves his music (in your case), then you can write a loop who check if one of the path repository is equal to a gallery.
For example if you got a file path/to/the/file.mp3
from the xml file and your galleries list looks like ["D", "to", "Videos"]
, write a function to check if each component of the file's path is a gallery. In this case your code will find "to", so you can launch a second function who use "the/file.mp3"
.
The second function has to use the given path and find if the gallery contains the right folders and finally the right file (use this example by Google). In the case you're trying to find "the/file.mp3"
with the gallery to
your loop has to find a directory named "the"
then "file.mp3"
(write a recursive function), if you find the file open it, otherwise come back to the first function if you haven't check all the galleries or all the path's component.
Upvotes: 1
Reputation: 196
The only full paths available are those returned by getDisplayPath.
The mediaGalleries API may be a better fit for your project: http://developer.chrome.com/apps/mediaGalleries.html#iTunes.
Upvotes: 2