나는 많은 하위 폴더를 포함하는 폴더 (ORIG)를 가지고있다 (각 하위 폴더에도 하위 폴더가 포함되어있다). 난 extention * .fig로 모든 파일을 새로운 폴더 (DEST)에 똑같은 하위 폴더 구조로 복사하려고합니다. 하위 폴더가 너무 많으므로 수동으로 하위 폴더를 만드는 데 너무 오래 걸립니다. 그래서 나는 프로그램으로 그것을 할 방법을 찾고 있습니다. 나는 재귀 적으로 모든 파일을 나열 dirr라는 코드를 찾아 newfullpaths 몇 가지 경로가 포함되어 있기 때문에 나는한 폴더에서 대상으로 모든 파일을 복사 matlab에
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)
이 코드는 작동하지 않습니다에 따라 모든 * .fig 파일을 검색하기 위해 단순히 코드를 작성하려고하는 존재하지 않습니다. 한 곳에서 대상으로 파일을 복사하는 방법은 없으며 대상 폴더가없는 경우 먼저 만듭니다.
docs에서'copyfile()'까지 : [새로운 존재하지 않는 폴더로 파일 복사] (http://www.mathworks.co.uk/help/matlab/ref/copyfile.html#btm0bv4-4) 자동으로 작동합니다. 어떤 오류 메시지가 나타 납니까? – Oleg
답장을 보내 주셔서 감사합니다. 그러나 여기에서는 copyfile이 작동하지 않습니다. '경로를 저장할 수 없습니다'오류가 발생합니다. 나는 간단한 테스트 카피 파일 ('c : \ abc \ a.fig', 'd : \ efg \ a.fig')을 실행한다; d : \ efg가 존재하지 않고 copyfile이 오류로 종료됩니다. 하지만 수동으로 d : \ efg를 수동으로 생성하면 에러가 발생하지 않습니다. – user1285419
'copyfile ('c : \ abc \ a.fig', 'd : \ efg \')'을 시도해보십시오. 작동하지 않는 경우 가지고있는 MATLAB 버전을 확인하는 데 도움이 될 수 있습니다. – Oleg