Replacing "dir" when deploying a GUI

1 visualización (últimos 30 días)
Edison
Edison el 26 de Jul. de 2018
Comentada: OCDER el 26 de Jul. de 2018
When turning a GUI into a standalone application i found out that the function "dir" i was using to get the names of the files in a folder, is not working. Using MATLAB Compiler i could add these files to the executable but i don't know how to get their names now i can't use this function, is there a similar one that works in a deployed code?
  3 comentarios
OCDER
OCDER el 26 de Jul. de 2018
Can you show us an example code of how dir is used?
Edison
Edison el 26 de Jul. de 2018
a=dir('*.xlsx'); b=extractfield(a,'name');
Indeed the function works, but it refers to the files in the executable folder, instead of that i need a function that refers to files in the ctffile

Iniciar sesión para comentar.

Respuesta aceptada

OCDER
OCDER el 26 de Jul. de 2018
Try this:
if isdeployed
a = dir(fullfile(ctfroot, '**', '*.xlsx')); %remove '**' if you know a precise folder location.
assert(~isempty(a), 'ERROR: Could not find a file at "%s".', fullfile(ctfroot, '**', '*.xlsx'))
else
a = dir(fullfile(my_root, '**', '*.xlsx')); %my_root is some other "main" dir of your codes
assert(~isempty(a), 'ERROR: Could not find a file at "%s".', fullfile(my_root, '**', '*.xlsx'))
end
  2 comentarios
Edison
Edison el 26 de Jul. de 2018
Thanks. It now recognizes the files. How can i open one of them using "winopen". Do i have to use "ctfroot" again?
OCDER
OCDER el 26 de Jul. de 2018
Since you already found the directory using dir, you could try this:
XlsFile = fullfile(a(1).folder, a(1).name)
winopen(XlsFile)
Or this could work if you know the exact excel file name because deployed applications has its own paths - so it should find the file for you.
winopen('XlsFileName.xlsx')

Iniciar sesión para comentar.

Más respuestas (0)

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!

Translated by