History of previously opened m-files in MATLAB

history, matlab

Solution

Matlab R2014b stores its recent files in:

%APPDATA%\MathWorks\MATLAB\R2014b\MATLAB_Editor_State.xml

It's a `.xml` file so it's easy to load and parse with `xmlread`. I'm not very familiar with xml parsing syntax, but here is how to get information about files (to be adapted to your needs of course):

function [recentFiles] = GetRecentFiles()
%[
    % Opens editor's state file
    filepart = sprintf('MathWorks\\MATLAB\\R%s\\%s', version('-release'), 'MATLAB_Editor_State.xml');
    filename = fullfile(getenv('APPDATA'), filepart);
    document = xmlread(filename);

    % Get information about 'File' nodes
    recentFiles = struct([]);
    fileNodes = document.getElementsByTagName('File');
    for fni = 1:(fileNodes.getLength())

       attributes = fileNodes.item(fni-1).getAttributes(); % Careful, zero based indexing !

       for ai = 1:(attributes.getLength())

           % Get node attribute
           name = char(attributes.item(ai-1).getName()); % Zero based + need marshaling COM 'string' type
           value = char(attributes.item(ai-1).getValue()); % Zero based + need marshaling COM 'string' type

           % Save in structure
           name(1) = upper(name(1)); % Just because I prefer capital letter for field names ...
           recentFiles(fni).(name) = value;

       end

    end    
%]
end

This returns a structure like this:

recentFiles = 

1x43 struct array with fields:

    AbsPath
    LastWrittenTime
    Name

NB: I've tried to type in matlab command window `matlab.desktop.editor.*`, but seems there's nothing regarding recent files (anyway there are a lot of interesting things to manipulate the editor from the command line)

Problem

Is anyway to find history of previously opened m-files in MATLAB R2014b from 2 or 3 months ago? (a list of name of files and paths)

Original source