function ok = set_permissions(file, readable, writable, executable) mustBeInteger(readable) mustBeInteger(writable) mustBeInteger(executable) p = filePermissions(file); assert(isscalar(p), "set_permissions: one file only") k = string.empty; v = logical([]); if readable ~= 0 k(end+1) = "Readable"; v(end+1) = readable > 0; end if writable ~= 0 k(end+1) = "Writable"; v(end+1) = writable > 0; end if executable ~= 0 if ispc() if executable > 0 && ~ismember("Readable", k) k(end+1) = "Readable"; v(end+1) = true; end else k(end+1) = "UserExecute"; v(end+1) = executable > 0; end end ok = true; if ~isempty(k) setPermissions(p, k, v) end end