C++
void Manage::GetAllFiles( string path, vector<string>& files)//获取一个文件夹下所有文件
{
long hFile = 0;
//文件信息
struct _finddata_t fileinfo;
string p;
if((hFile = _findfirst(p.assign(path).append("\\*").c_str(),&fileinfo)) != -1)
{
do
{
if((fileinfo.attrib & _A_SUBDIR))
{
if(strcmp(fileinfo.name,".") != 0 && strcmp(fileinfo.name,"..") != 0)
{
files.push_back(p.assign(path).append("\\").append(fileinfo.name) );
GetAllFiles( p.assign(path).append("\\").append(fileinfo.name), files );
}
}
else
{
files.push_back(p.assign(path).append("\\").append(fileinfo.name) );
}
}while(_findnext(hFile, &fileinfo) == 0);
_findclose(hFile);
}
}
CAA
int CATAECAddActionsComboDlg::GetAllFiles(CATUnicodeString sPath, CATListOfCATUnicodeString& osFilePathList)
{
int dStatus = 0;
CATDirectory pDir;
CATLibStatus status = CATOpenDirectory(sPath.ConvertToChar(), &pDir);
if (CATLibSuccess == status)
{
int EndOfDir = 0;
CATDirectoryEntry Entry;
while ((EndOfDir != 1) && (CATLibSuccess == status))
{
status = ::CATReadDirectory(&pDir, &Entry, &EndOfDir);
if ((CATLibSuccess == status) && (EndOfDir != 1))
{
CATUnicodeString sTextName(Entry.name);
if (!(sTextName.IsNull()) && sTextName != "." && sTextName != "..")
{
osFilePathList.Append(sTextName);
}
}
}
status = ::CATCloseDirectory(&pDir);
if (CATLibError == status)
dStatus = 0;
else if (osFilePathList.Size() > 0)
dStatus = 1;
}
else {
cout << "Error : CATOpenDirectory is Failed !" << endl;
dStatus = 0;
}
return dStatus;
}