aardio io.open 打开文件文件路径的坑

文章讲述了在使用Aardio开发web应用时遇到的文件读取问题,原因是Aardio资源文件路径使用反斜杠()而JS代码通常使用正斜杠(/)作为路径分隔符。作者发现并解决了这个问题,将JS中的路径分隔符改为正斜杠后,文件读取恢复正常。
摘要由CSDN通过智能技术生成

最近我看到了一个aardio,他可以创建web应用程序,所以我就开始了学习。

但是我发现,使用io.open打开文件后,无论如何都无法读取,一直报错:

devtool的报错

一开始我以为是因为我使用js来操作aardio函数的问题,后来我单独测试,发现还真是。

最后在我无意之间发现,aardio从资源文件中拖出来的文件路径的分隔符是"\"

 

但是在js里面,我们一般使用"/"作为文件路径分隔符

 

因为我js的代码是直接复制的aardio的内容,所以在vscode中"\"会以红色标记,然后我就发现了这个问题。

随后我将js的分隔符改成了"/",发现正常了,也能正常读写

 附上代码:

js:

/**
 * 打开文件
 * @param {string} url 打开文件的路径
 * @param {string} mode "r+": 打开读写文件;"w+": 打开创建覆写读写文件;"a+": 追加打开创建读写文件
 */
function openFile(url, mode) {
    aardio.openFile(url, mode);
}
/**
 * 读取文件
 * @param {any} url 读取的内容下标:https://bbs.aardio.com/doc/reference/libraries/kernel/io/io.html
 * @returns 读取的文件结果
 */
async function readFile(url) {
    return await aardio.readFile(url);
}


openFile('/res/a', 'r+');
readFile("%s").then(function (res) {
    alert(res);
})

 aardio:

import win.ui;
import win.ui.menu;
/*DSG{{*/
var winform = win.form(text="WebView2";right=966;bottom=622)
winform.add()
/*}}*/

//创建浏览器组件
import web.view;
var wb = web.view(winform);
var file;
 io.open();
//导出本地函数给网页 JavaScript
wb.external = {
    openFile = function(url,modes){
        file = io.open (url, modes);
        io.print("打开文件:",url,"类型:",modes,"结果:",file);
    }
    readFile = function(url){
        var s = file.read(url);
        io.print("读取文件:",url,"打开内容:",s);
        return s;
    }
}
import sys;
//打开目标网站
wb.go("\res\index.html");
//显示窗体
winform.show(true)
//进入消息循环
win.loopMessage();
return wb,winform;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值