fileDoesNotExist error with compiled application
7 views (last 30 days)
Show older comments
Mike Bocchinfuso
on 25 Jul 2016
Commented: Mike Bocchinfuso
on 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 Comments
Accepted Answer
Walter Roberson
on 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 Comments
Walter Roberson
on 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.
More Answers (0)
See Also
Categories
Find more on File Operations in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!