c/c++、matlab讀取資料夾下的檔案

芝士不知世發表於2020-11-30

1.  c讀取資料夾下的檔案

const char *to_search = "E:/myProject/c/*.bin"; //讀取“E:/myProject/c/”資料夾中的以.bin結尾的檔案
const char *filedir = "E:/myProject/c/";

int readDir(){
	int r=0;
	long handle;                                          //用於查詢的控制程式碼
	struct _finddata_t fileinfo;                          //檔案資訊的結構體
	handle = _findfirst(to_search, &fileinfo);            //第一次查詢
	if (-1 == handle) {
		return -1;
	}

	//讀單個檔案,執行單個檔案
	//int readSinglefile=0;
	const char *filename=NULL;
	//filename="data2.bin";

	printf("\n\n%s\n", fileinfo.name);                         //列印出找到的檔案的檔名

	//cout << "s_length:" <<strlen(filedir)+ strlen(fileinfo.name) << endl;
	char *s=new char[strlen(filedir)+strlen(fileinfo.name)] ;
	strcpy(s, filedir);

	if(filename==NULL){
		strcat(s, fileinfo.name);
		r = fun(s);           //對檔案進行處理
	}else {
		strcat(s, filename);
		r = fun(s);           //對單個檔案進行處理
		return 1;
	}

	cout << "//*************************************************//" << endl;


	while (!_findnext(handle, &fileinfo))               //迴圈查詢其他符合的檔案,知道找不到其他的為止
	{
		printf("%s\n", fileinfo.name);
		strcpy(s, filedir);
		strcat(s, fileinfo.name);

		//對檔案進行處理
		r = fun(s);
		cout << "//*************************************************//" << endl;

	}
	_findclose(handle);                                      //關閉控制程式碼

	s = NULL;
	delete[] s;

	return 0;
}

參考:https://www.cnblogs.com/fnlingnzb-learner/p/6424563.html

2. matlab讀取目錄下的檔案

輸入:files,檔案目錄

返回:元胞陣列filename,資料夾下的檔名。

function filename=readFiles(files)
  filesmat=[files '*.mat'];
  filestruct=dir(filesmat);% 獲取指定資料夾下面所有mat
  N=length(filestruct);
  Names={};

  filename=cell(N,1);
  for k=1:N
      Names{k}=filestruct(k).name;
      fileToRead=[files Names{k}];
      filename{k}=fileToRead;    
  end

end

示例:

fileDir='D:\myProject\matlab\';
filenames=readFiles(fileDir);

% 迴圈讀取檔案
for i=1:size(filenames,1)  
    load(filenames{i});

end

 

 

相關文章