Matlab:如何根据日期删除文件夹?(例如,一个目录中有3个最老的)

Matlab:如何根据日期删除文件夹?(例如,一个目录中有3个最老的),matlab,directory,delete-file,Matlab,Directory,Delete File,我想知道如何在matlab中实现一个自动删除过程,甚至它是否可能 例如,我想删除matlab当前目录中最早的3个文件夹。但问题是,3个最旧的文件夹可能会根据它们保存的日期或时间显示出来。比较不同,可能分为小时比较或天比较。以下函数返回给定目录中指定数量的最旧目录。它使用命令列出目录内容,根据“datenum”字段对结构进行排序,然后返回最早的目录: function oldestDirs = getOldestDirectories(directory, count) oldestDirs =

我想知道如何在matlab中实现一个自动删除过程,甚至它是否可能


例如,我想删除matlab当前目录中最早的3个文件夹。但问题是,3个最旧的文件夹可能会根据它们保存的日期或时间显示出来。比较不同,可能分为小时比较或天比较。

以下函数返回给定目录中指定数量的最旧目录。它使用命令列出目录内容,根据“datenum”字段对结构进行排序,然后返回最早的目录:

function oldestDirs = getOldestDirectories(directory, count)
oldestDirs = {};
if ~isdir(directory) || count <= 0
    return;
end

directories = dir(directory);

fields = fieldnames(directories);
dirCell = struct2cell(directories);
sz = size(dirCell);

% Convert to a matrix
dirCell = reshape(dirCell, sz(1), []);

% Make each field a column
dirCell = dirCell';

% Sort by first field "name"
dirCell = sortrows(dirCell, find(ismember(fields, 'datenum')));

% Put back into original cell array format
dirCell = reshape(dirCell', sz);

% Convert to Struct
sorted = cell2struct(dirCell, fields, 1);

foundElems = 0;
for i = numel(sorted):-1:1
    if sorted(i).isdir && ~any(strcmp(sorted(i).name, {'.', '..'}))
        foundElems = foundElems + 1;
        oldestDirs{foundElems} = fullfile(directory, sorted(i).name);
    end
    if foundElems == count
        return;
    end
end
end
然后,您可以简单地删除循环中的目录:

for i = 1:numel(oldDirs), rmdir(oldDirs{i}, 's'); end

你试了什么?为什么不起作用?
for i = 1:numel(oldDirs), rmdir(oldDirs{i}, 's'); end