⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cbrowserdir.cpp

📁 提供交互的方式选取合适的震相
💻 CPP
字号:

#include "CBrowserDir.h"

#include <direct.h>
#include <io.h>

using namespace std;

// 查找并记录目录中的所有下一级目录中的文件

bool CBrowserDir::BrowserDir(const char * dir) {
	//init vectors
	m_vSubDirName.clear();
	
	map< string, vector< string > >::iterator iter = m_vFileName.begin();
	while( iter != m_vFileName.end() ) {
		iter->second.clear();
		iter++;
	}

	m_vFileName.clear();

	char oldir[_MAX_PATH];
	if( NULL == _getcwd( oldir, _MAX_PATH ) )
		return false;

	_chdir(dir); 

	long hFile; 
	_finddata_t fileinfo;
	
	if ((hFile=_findfirst("*.*",&fileinfo)) != -1) { 
		do { 
			//检查是不是目录 
			//如果是,再检查是不是 . 或 .. 
			//如果不是,进行处理 
			if ((fileinfo.attrib & _A_SUBDIR)) { 
				if (strcmp(fileinfo.name,".") != 0 && strcmp 
				(fileinfo.name,"..") != 0) { 
					char subdir[_MAX_PATH]; 
					strcpy(subdir,dir); 
					strcat(subdir,"/"); 
					strcat(subdir,fileinfo.name); 
					strcat(subdir,"/"); 

					m_vSubDirName.push_back(subdir);
					
					ProcessDir(subdir); 
				} 
			} 
		} while(_findnext(hFile,&fileinfo) == 0);

		_findclose(hFile); 

	} 

	_chdir( oldir );
	return true;
}

// 查找并记录目录中的所有文件

bool CBrowserDir::ProcessDir(const char *dir) {

	_chdir(dir); 

	long hFile; 
	_finddata_t fileinfo;
	vector<string> vFileName;
	
	if ((hFile=_findfirst("*.*",&fileinfo)) != -1) { 
		do { 
			//检查是不是目录 
			//如果不是,则进行处理 
			if (!(fileinfo.attrib & _A_SUBDIR))  { 
				char pathname[_MAX_PATH]; 
				strcpy(pathname,dir); 
				strcat(pathname,fileinfo.name); 

				vFileName.push_back( pathname );
			}
		} while (_findnext(hFile,&fileinfo) == 0);
		_findclose(hFile); 

		m_vFileName[dir] = vFileName;
	}

	return true;
}

bool CBrowserDir::WriteDirListFile(const char *filename) {
	
	if( NULL == filename )
		return false;

	FILE * fout;

	fout = fopen(filename, "wt");

	if( NULL == fout )
		return false;

	map< string, vector< string > >::iterator iter = m_vFileName.begin();
	
	while( iter != m_vFileName.end() ) {
		vector< string >::iterator iterFile = iter->second.begin();

		while( iterFile != iter->second.end() ) {
			fprintf(fout, "%s\n", (*iterFile).c_str() );
			iterFile++;
		}

		iter++;
	}

	fclose( fout );

	return true;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -