多くのサブフォルダーを含むフォルダー (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 に存在しないパスが含まれているため、このコードは機能しません。ファイルをある場所から宛先にコピーする方法はありますか?宛先フォルダーが存在しない場合は、最初に作成します。