Matlab App Designer编译打包exe后读取文件路径问题
首先,标题略长……
其次,当你看到这个长长的标题并点进来的时候:bro,恭喜你终于找到了一个行之有效的解决方案!
~好了,下面我们言归正传。
关于MATLAB App Designer自身的介绍不是此文重点,不再赘述,相信来到这里的小伙伴都已经对其有了不同层次的认知。个人感觉,App Designer确实比其自家的前辈GUIDE更易用、高效、美观,但在软件工具开发层面,其依然无法和大众流行的Python、Jave、MS平台相比,主要体现在代码架构组织和编辑方式让人唉声叹气、打包软件运行效率低得让人欲哭无泪、软件BUG莫名其妙且百度不得其解、打包运行和开发模式下的错误南辕北辙……然而,吐槽虽是,但无法弃之。为了饭碗,一些奇葩的问题还是只能硬着头皮去搞,比如标题所述的问题。
先说下我的开发需求和环境:
1)系统软件:Win10+MATLAB2020a版本
2)工程目录:首先肯定有个.mlapp文件,里面一堆操作中会去调用.mlapp文件同级目录下(也即工程根目录)的配置文件(包括excel、子文件夹中txt等需要用户配置文件)。
如上所述,由于需要加载外部配置文件并且不能把目录一锤定音写死,自然在.mlapp的脚本中需要涉及路径问题,一开始想用mfilename函数获取exe的当前路径,测试过程中发现:
在开发模式下,由于运行.mlapp前必须先将相关文件夹和文件添加到path(否则运行直接报错),因此隐藏了mfilename函数实际上无法获取exe绝对路径的问题(猜测脚本应该是在path目录里去找了);但是打包成exe文件后,不管是安装版还是免安装版,点击运行时却存在找不到配置文件的错误(友情多余提醒:需要在打包时勾选“输出日志文件”或“显示调试窗口”的方式才能捕捉到详细信息),因为此时matlab会把整个exe临时复制到以下目录(忘了截图了,只能凭印象了):“C:\Users\Administrator\AppData\Local\Temp\Administrator\MCRInstaller9.9\……”,也即系统默认的用户文件目录,所以此时自然也就找不到exe同目录下的其他文件了。
于是,开始了中文百度和英文谷歌,各种关键词花式组合搜了好几天,看到的搜索结果大概有以下几种:
1)很多说可以使用mfilename、path函数。
2)部分说可以使用cd、which等系统命令查找exe文件绝对目录。
3)部分说可以使用查找注册表的方式查找exe文件绝对目录……
最后一一测试,发现结果只有三个字:然并卵!
失败的过程就不啰嗦了,感兴趣的朋友可以去亲自体验。无奈之下,一边骂MATLAB软件开发生态的贫瘠,一边只能继续冥思苦想(随便瞎试),最后凭运气发现:
pwd命令可用!
是的,pwd命令在通过非快捷方式启动运行exe时,可以获取到exe所在绝对路径!
exe_abs_fullpath = pwd;
所以,看到这的亲们,你们可以激动得动起你们的小手试一下了!
但是,无论怎么操作,发现windows平台上一个自始至终无法解决的问题:使用MATLAB自带打包工具打包的安装版的exe通过快捷方式或开始菜单启动时,pwd命令依然无法获取到exe所在目录……还有这种骚操作??谁的锅??只能说fck了!
但愿以后不再用MATLAB开发客户端软件,愿世界和平!
Matlab App Designer编译打包exe后读取文件路径问题相关推荐
- th:text为null报错_小猿圈web前端之vue-cli项目打包完成后运行文件路径报错问题
学习前端的小伙伴越来越多,问题也就越多,前面基础部分还好一些,特别是一到框架的时候,难住了一大部分人,今天小猿圈web前端讲师就为大家总结了vue-cli项目打包完成后运行文件路径报错问题,有兴趣的小 ...
- 【MATLAB App Designer】实例:调用simulink模型并打包为独立程序
[MATLAB App Designer]调用simulink模型并打包为独立程序 本人第一次写文章,如有纰漏还请指出,望海涵. 本人等级不够,标签都加不了qwq,大家点点赞哈. 文章目录 [MATL ...
- 《MATLAB App Designer从入门到实践》随书源代码
GUIDE已经被MATLAB抛弃了,你还不知道吗?App Designer才是发展的方向 目前市面上MATLAB GUI编程的书籍琳琅满目,但大多数是基于GUIDE开发的,MATLAB从2016年开始 ...
- 基于MATLAB APP Designer 和 Python 的音视频剪辑
简介 本软件是基于 MATLAB APP Designer 和 Python 联合编制的一款简易音视频剪辑软件,可以拿来练手MATLAB APP Designer.面向对象编程.假期空闲时和同学一起自 ...
- Matlab App Designer 学习笔记
提示:本文的学习视频来自B站小刘老师的教程 链接:https://www.bilibili.com/video/BV16f4y147x9?from=search&seid=2070258926 ...
- Matlab APP Designer Demo
Matlab --- APP Designer Matlab APP Designer 提供了比GUIDE更加丰富的组件,两者使用方法有所不同,如下图: 然后我们开始新建一个APP Designer. ...
- 用MATLAB app designer设计人机交互界面——二阶线性动态电路可视化分析的研究
用MATLAB app designer设计人机交互界面--二阶线性动态电路可视化分析的研究 这是我第一次尝试写博客,我试着给出电路课上要求的电路实验编程.但是电路的类型有点儿多,所以我只以二阶动态电 ...
- MATLAB App Designer —— 手撕代码学习总结
文章目录 MATLAB App Designer 官方文档 MATLAB App Designer 官方示例 (一) (1.1)csvread() 函数 (1.2)xlsread() 函数 (1.3) ...
- MATLAB App Designer GUI开发从0到1(二)
文章目录 前言 一.开关以及旋钮 1. 左上角:旋钮 2.右上角:90度仪表 3.左下角:分档开关 4.右下角:开关 5.对旋钮微调 二.画图 1. 普通画图 2.添加小组件 三.回调函数 简单的回调 ...
最新文章
- 硬核!15张图解Redis为什么这么快
- android:windowsoftinputmode=“adjustresize” 无效的解决办法
- 工作中如何进行接口测试
- python的分号用英文还是中文_Python中的分号
- 团队管理21--梯队培养
- 2NE1 AON北京演唱会
- Snaker-designer插件Eclipse安装
- CF1153F Serval and Bonus Problem
- Inferring Motion Direction using Commodity Wi-Fi for Interactive Exergames (WiDrancd)论文翻译
- 使用python在已存在的excel数据表中的特定位置写入数据
- Flutter 图片组件Image、本地图片、远程图片、图片剪切、圆形图片
- Excel数值函数(3):对“自动筛选”的结果求和、平均值、极值等
- 【Swift编程基础】P41-50
- 网盘江湖混战难打 百度为何坚持加码?
- Java中常见的几种任务调度框架对比
- Day1 Java读取二进制文件
- Web_Traffic_Part1赛题分析
- java字符串去重_java字符串去重方法详解,字符串如何去重?
- App竞品技术分析 (3)减小安装包的体积(转)
- 爬虫实战(1)————百度首页爬取
热门文章
- 联想TD350服务器主板型号,【新品】塔式机身 联想ThinkServer TD350
- js-xlsx插件导出的excel头部有一行序号解决办法
- web端接收读卡器卡片信息
- 华为手机如何默认数据存在存储卡里面
- 揭秘网站的seo技术 ---seo与seoer 王泽宾
- 知识图谱——TransH模型原理
- Java导出excel表格,数字数据带E
- Huggingface Transformers 安装报错 ImportError: /lib64/libc.so.6: version `GLIBC_2.18‘ not found
- 迈巴赫S480升级原厂H17全车钢琴木饰板,五座改四座,电动后门
- MaxCompute(ODPS)一对多连表时实现多行过滤(同样适用于MySQL)