mfilename not predictable value return

조회 수: 12 (최근 30일)
Michele
Michele 2025년 2월 18일
댓글: Michele 2025년 2월 18일
I'm experiencing a strange behaviour when using mfilename function.
I compiled a script (myScript.m) that use mfilename into an executable (myScript.exe) and running it from a specific folder (C:\Users\username\Desktop\appfolder\).
I tought mfilename returned the binary full path but this's not true... i.e. running myScript.exe from the above folder and printing the value returned by mfilename I got:
C:\Users\username\AppData\Local\Temp\username\mcrCache9.7\myScriptN\myScriptT\myScript
Where myScriptN, myScriptT are temporary subfolders.
This path cannot be used to locate anything local or relative to to the binary folder.
Is there a function that can return the correct path when the script is executed compiled.
BTW the same issue is found also when script are compiled into DLL or .NET assemblies.
  댓글 수: 2
Stephen23
Stephen23 2025년 2월 18일
편집: Stephen23 2025년 2월 18일
Cross platform:
[status, result] = system('cd');
currentPath = strtrim(result);
.NET:
NET.addAssembly('System.Runtime.InteropServices');
exePath = System.Reflection.Assembly.GetExecutingAssembly().Location;
Michele
Michele 2025년 2월 18일
also:
currentPath = pwd

댓글을 달려면 로그인하십시오.

답변 (0개)

카테고리

Help CenterFile Exchange에서 Introduction to Installation and Licensing에 대해 자세히 알아보기

제품


릴리스

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by