2012-07-09 3 views
1

모든 .doc 파일에 대한 디렉토리 및 하위 디렉토리를 검색하고이를 모두 MatLab을 사용하여 하나의 파일로 압축하고 싶습니다. zip() matlab 함수를 사용하면 하나의 루트 디렉토리 만 허용됩니다. ZIP(ZIPFILENAME, FILES, ROOTDIR).MATLAB 검색 및 우편 번호

1) 하위 디렉토리를 재귀 적으로 검색하려면 어떻게해야합니까?

2) 모든 zip 파일을 하나의 폴더에 어떻게 추가합니까?

.doc 개의 파일을 임시 폴더로 이동 한 다음 해당 위치에서 압축하는 것이 가장 좋습니까?

+0

왜 MATLAB에서 파일을 압축 하시겠습니까? 종류가 이상합니다. – chaohuang

+0

예, 이것은 bash 스크립트에 훨씬 더 적합합니다. – Squazic

+0

모든 모델 보고서 doc 파일을 수집하고 하나의 폴더로 압축하는 .m 스크립트에 대한 콜백을 사용할 시뮬 링크 블록을 사용하고 싶습니다. 또한 나는 리눅스를 사용하지 않고있다. 나는 윈도우 PC에있다. – user1469906

답변

0

먼저 모든 하위 디렉터리 (옵션 /S)를 포함하여 모든 .doc 파일에 대해 dos(...)을 사용하고 파일 이름 만 표시하고 추가 정보는 표시하지 않습니다 (옵션 /B).

[~, filenamesFromDos] = dos('dir *.doc /B/S'); 

둘째, 셀 어레이와 같은 그 명령의 파일명을 추출 : 제 1 출력 인자는 상기 제 2 출력 인수는 명령 라인에서 반환 된 문자열, 반환 상태이다. 파일명은 잠재적 'Whitespace','' 따라서, 공간을 포함 할 수 개행 (\n) 문자 및 경로로 구분된다

filenames = textscan(filenamesFromDos,'%s','Delimiter','\n','Whitespace',''); 

filenames 파일명이 문자열 <Nx1 cell>를 포함 다음 <1x1 cell>이다.

zip('zip_file.zip',filenames{1}); 

완료 :이 <Nx1 cell>으로 우리는 내장 MATLAB 기능 zip(...)를 호출 할 수 있습니다.