1

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

4

3 に答える 3

0

シェルエスケープを使用できます:

!cp -r [old dir] [new dir]

[old dir]は古いフォルダへの[new dir]パスで、 は既存または作成される新しいフォルダへのパスです。

EDITdos :Windowsでは、コマンドを次のように使用できる場合があります。

dos('copy [old dir] [new dir]')

これをテストすることはできません。申し訳ありません。

于 2013-06-09T20:28:28.470 に答える
0

copyfileMATLAB R2017a では、関数を次のように使用できます。

copyfile('path for source\*', 'path for destination\');
于 2019-09-18T18:00:10.163 に答える