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

Adam
Adam 2018년 7월 26일
I'm fairly sure I've used dir in a compiled application. I always use it with an argument though rather than just relying on whatever the current folder happens to be. I don't see any restrictions in the Help that suggest it doesn't work in a deployed executable.
OCDER
OCDER 2018년 7월 26일
Can you show us an example code of how dir is used?
Edison
Edison 2018년 7월 26일
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

댓글을 달려면 로그인하십시오.

 채택된 답변

OCDER
OCDER 2018년 7월 26일

0 개 추천

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

Edison
Edison 2018년 7월 26일
Thanks. It now recognizes the files. How can i open one of them using "winopen". Do i have to use "ctfroot" again?
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')

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 File Operations에 대해 자세히 알아보기

질문:

2018년 7월 26일

댓글:

2018년 7월 26일

Community Treasure Hunt

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

Start Hunting!

Translated by