fileDoesNotExist error with compiled application
6 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Mike Bocchinfuso
am 25 Jul. 2016
Kommentiert: Mike Bocchinfuso
am 28 Jul. 2016
hello:
I've compiled my Matlab code into an independent executable file. Upon reaching the point in the code where it requires the user to select an image to process - see below for that command - I get an error.
> loadimg = imread(uigetfile({'*.jpg;*.bmp;*.tif;*.png;*.gif'}))
after this, the user selects a file, and the executable reports the following:
> error using imread (line 349)
> file "pic 1.bmp" does not exist
> error in parsing2 (line 5)
> MATLAB:imagesci:imread:fileDoesNotExist
after this, the application quits.
0 Kommentare
Akzeptierte Antwort
Walter Roberson
am 25 Jul. 2016
The executable is not in the directory that you assume it is in. You need to use the two-output version of uigetfile and then use fullfile() to construct the fully-qualified filename and imread() that. And remember to try/catch in case there is a problem.
3 Kommentare
Walter Roberson
am 26 Jul. 2016
The executable's initial directory is typically the directory it was expanded into, which you can access under the function name ctfroot() . In MS Windows, OS-X and Linux, whenever you start a graphical executable by way of icon, the initial directory is set according to operating system rules, sometimes rules stored with the icon properties; the initial directory is not set according to which directory the user is "in" because in a graphical windowed system the user is "in" multiple directories simultaneously.
The solution is to use fullfile() to ensure that the directory portion gets filled out completely. In MS Windows you might want to use getenv() to look at the HOMEDRIVE and HOMEPATH environment variables.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu File Operations finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!