How to make deployed program directory not read only

9 views (last 30 days)
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!

Accepted Answer

Eric Delgado
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").
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)

Categories

Find more on Startup and Shutdown in Help Center and File Exchange

Products


Release

R2020b

Community Treasure Hunt

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

Start Hunting!