我有一个文件夹(说 ORIG),其中包含许多子文件夹(每个子文件夹还包含其子文件夹等等)。我正在尝试将扩展名为 *.fig 的所有文件复制到具有完全相同子文件夹结构的新文件夹 (DEST) 中。由于子文件夹太多,手动创建这些子文件夹需要很长时间。所以我正在寻找一种用程序来做到这一点的方法。我找到一个名为 dirr 的代码以递归方式列出所有文件,我正在尝试编写简单的代码来检索所有 *.fig 文件,如下所示
clear all;
clc;
oldpath = 'd:\myfig';
newpath = 'c:\matlabdata\plotting\figs';
[files, bytes, names] = dirr([oldpath ], 'name');
oldfullpaths = names(:);
newfullpaths = strrep(oldfullpaths, oldpath , newpath );
copyfile(oldfullpaths, newfullpaths)
此代码不起作用,因为 newfullpaths 包含一些不存在的路径。这是将文件从一个地方复制到目标的任何方式,如果目标文件夹不存在,请先创建它。