mfilename not predictable value return

6 Ansichten (letzte 30 Tage)
Michele
Michele am 18 Feb. 2025
Kommentiert: Michele am 18 Feb. 2025
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 Kommentare
Stephen23
Stephen23 am 18 Feb. 2025
Bearbeitet: Stephen23 am 18 Feb. 2025
Cross platform:
[status, result] = system('cd');
currentPath = strtrim(result);
.NET:
NET.addAssembly('System.Runtime.InteropServices');
exePath = System.Reflection.Assembly.GetExecutingAssembly().Location;
Michele
Michele am 18 Feb. 2025
also:
currentPath = pwd

Melden Sie sich an, um zu kommentieren.

Antworten (0)

Kategorien

Mehr zu Introduction to Installation and Licensing finden Sie in Help Center und File Exchange

Produkte


Version

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by