Proe Creo 二次開發之遞歸遍歷文件信息

 


void CTemplateFileDeal::GetTempletFileInfo( CString strWildcard, vector<tempFileInfo>& fileInfoArrout,int parentid, MaindlgFileType folderType)
{
	//文件臨時信息
	tempFileInfo tempfileinfo;
MaindlgFileType fileType = TEMPLETE_FILE;

	int n_files = 0;
	int n_dirs = 0;
	ProPath * file_list = NULL;
	ProPath * dir_list = NULL;

	//分配內存
	err = ProArrayAlloc(0, sizeof(ProPath), 1, (ProArray*)&file_list);
	err = ProArrayAlloc(0, sizeof(ProPath), 1, (ProArray*)&dir_list);

	
	
	// 判斷:文件夾類型位個人收藏夾
	if(PERSONAL_FOLDER == folderType)
	{
		  fileType = PERSONAL_FILE;
	}

	//開始從頂級目錄查找
	err = ProFilesList(strWildcard.GetBuffer(), ".xls", PRO_FILE_LIST_LATEST,  &file_list, &dir_list);

      if (err == PRO_TK_NO_ERROR)
	{ 
		//處理子文件
		err = ProArraySizeGet((ProArray)file_list, &n_files);

		for ( int ii = 0; ii < n_files; ii++ )
		{
			
                 tempName=CString(file_list[ii]);
                 AddFileInfoToArry(finder,tempfileinfo,fileType,parentid,fileInfoArrout);
		}

                  //處理子目錄
			err = ProArraySizeGet((ProArray)dir_list, &n_dirs);
			for ( int ii =0; ii < n_dirs; ii++ )
			{
			  // 將文件夾信息放入到模板樹信息中
			    AddFileInfoToArry(finder,tempfileinfo,folderType,parentid,fileInfoArrout);
			    // 遞歸調用
			   GetTempletFileInfo(finder.GetFilePath(),fileInfoArrout,m_currentID,folderType);
			}
          }
	

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章