fileDoesNotExist error with compiled application
7 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Mike Bocchinfuso
el 25 de Jul. de 2016
Comentada: Mike Bocchinfuso
el 28 de Jul. de 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 comentarios
Respuesta aceptada
Walter Roberson
el 25 de Jul. de 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 comentarios
Walter Roberson
el 26 de Jul. de 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.
Más respuestas (0)
Ver también
Categorías
Más información sobre File Operations en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!