读取文件系统 Windows apache cordova app
Posted
技术标签:
【中文标题】读取文件系统 Windows apache cordova app【英文标题】:Reading file system Windows apache cordova app 【发布时间】:2016-11-02 09:47:41 【问题描述】:我正在使用 cordova-file 插件来读取我存储在我的应用程序中的文件并加载它以供用户查看。
我有以下代码:
function readFileName(identifier)
var ret = ""
var directory = cordova.file.applicationDirectory + "www/presentations/files/";
var fileName = identifier.getAttribute("data-link")
window.resolveLocalFileSystemURL(directory, function (directoryEntry)
directoryEntry.getFile(fileName, create: false , function (fileEntry)
ret = fileEntry.nativeURL;
, ret = null);
, fail);
return ret;
目录解析为 ms-appx:///www/presentations/files/
该代码在 android 中运行良好,但在 Windows 应用程序中,它返回错误代码 5,根据文档是 ENCODING_ERR。
我假设这是因为我的文件的路径不正确,但文档说 ApplicationStorage 在 Windows 10 上工作并且没有发现任何表明 www/presentations/files/ 文件夹不存在的信息(它当然存在于我的 deug 文件夹中)。
我很想知道如何解决。即使我尝试像这样解析根目录:
window.resolveLocalFileSystemURL(directory, function (directoryEntry)
var reader = directoryEntry.createReader();
reader.readEntries(function success(entries)
var i;
for (i = 0; i < entries.length; i++)
console.log('En - ', entries[i].fileName);
, fail);
我仍然遇到同样的错误。任何指针将不胜感激。
编辑:
我查看了以下错误
https://github.com/Reon90/cordova-plugin-file/blob/a4df917e66d0c35cb3e11ca3257f54b8b7dd3eab/src/windows/FileProxy.js
我已将更改应用到文件,但仍然收到相同的错误
【问题讨论】:
将<preference name="WindowsDefaultUriPrefix" value="ms-appx://" />
添加到config.xml并重建是否有效?
很遗憾没有,仍然是同样的错误。
【参考方案1】:
我查看了以下错误 https://github.com/Reon90/cordova-plugin-file/blob/a4df917e66d0c35cb3e11ca3257f54b8b7dd3eab/src/windows/FileProxy.js 我已将更改应用到文件,但仍然收到相同的错误
我做了一个演示并尝试使用此链接中的代码对其进行修复。起初它没有用。但是在我使用命令cordova platform rm windows
删除了Windows 平台并再次运行该应用程序之后。有效!
注意:有关解决问题的详细信息,请参阅Changes made to FileProxy.js。
【讨论】:
据我所知,从VS执行platform rm windows
是不可能的。请改用Cordova Command Line Tool。如果您还没有安装CLI,请按照Install cordova CLI的步骤操作。
谢谢,是的,做了一个快速的 google 并从节点 js 窗口完成,似乎工作了,所以谢谢!以上是关于读取文件系统 Windows apache cordova app的主要内容,如果未能解决你的问题,请参考以下文章
Apache Windows配置-----跨域CORS设置-----HTTP响应头设置-------dplayer调用apache服务时的header filed range报错解决