在chrome扩展程序或应用程序中获取用户本地系统上的目录或文件的完整绝对路径

时间:2014-11-17 03:00:53

标签: javascript angularjs google-chrome google-chrome-extension google-chrome-app

我正在尝试获取chrome fileSystem fileEntry的完整路径。

我正在尝试使用getDisplayPath来获取“本地文件系统上文件或目录的完整路径”,但所有返回的内容都是~/Documents/current_directory

我希望它是:/home/user/Documents/current_directory,或者换句话说,它缺少主目录,而是使用~

我想获取文件的绝对路径,以便我可以通过Chrome浏览器中的url查看它。

我可以使用chrome tabs api来执行此操作:

var url = "file:///home/user/Documents/folder/file";
chrome.tabs.create({url: url}, function(tab) {
});

我需要给它一个确切的网址。

根据这个: Display full path instead of ~ prefixed path in linux chrome apps,我的问题的解决方案可能不存在。

我会接受任何答案,帮助我获取存在于用户使用chrome的chrome.fileSystem.chooseEntry函数选择的任意目录中的文件或文件夹的绝对路径。由于可能不存在真正的解决方案,我也会接受聪明/解决方法的答案(例如,我至少可以使用文本输入来询问用户表示其主目录的字符串)。

2 个答案:

答案 0 :(得分:1)

您可以通过使用downloads api将用户下载文件到目录来获取目录的绝对路径。然后下载api具有下载文件的绝对路径。

使用目录和文件名的绝对路径,您可以获得完整的绝对路径

答案 1 :(得分:0)

关于文件,您可能希望将文件的内容作为blob获取并使用以下内容:

var url = URL.createObjectURL(blob);
chrome.tabs.create({url: url}, function() {});