How to make deployed program directory not read only
6 views (last 30 days)
Show older comments
Hello
I have a compiled program (prog_name.m) that takes data from an external file (data.csv). The external file needs to be editable by the user, and the data from this external file is loaded into the program.
I included the external file in the "Files installed for your end user" section of the matlab compiler app.
When i install using the generated installer, the program installs to
C:\Program Files\prog_name\application
and in this folder there is my prog_name.exe and the external file (data.csv)
However, this folder always read only, and I can't edit data.csv without a fair amount of headache and changing file permissions. This isn't something I want the users to have to deal with. Is there a way I can make the installed folders not read only?
Im using windows 10 and R2020b
Thanks!
0 Comments
Accepted Answer
Eric Delgado
on 3 Oct 2022
Edited: Eric Delgado
on 3 Oct 2022
In this case you should use AppData as default installation folder (see below). If this is not a solution, then you should put in the startup of your app a folder validation (Is the folder writable? If not, create a new one in ProgramData Windows folder, for example, copying your file "data.csv").
See here an explanation about a folder validation - https://www.mathworks.com/matlabcentral/answers/296657-how-can-i-check-if-i-have-read-or-write-access-to-a-directory.
Your code will be something like that...
if ~isfolder(fullfile(getenv('PROGRAMDATA'), 'TheNameOfYourApp'))
mkdir(fullfile(getenv('PROGRAMDATA'), 'TheNameOfYourApp'))
movefile(fullfile(app.RootFolder, 'data.csv'), fullfile(getenv('PROGRAMDATA'), 'TheNameOfYourApp'));
end
% app.RootFolder is the path of your app
More Answers (0)
See Also
Categories
Find more on Introduction to Installation and Licensing 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!