在VC环境下怎样遍历文件夹中的文件

在VC环境下怎样遍历文件夹中的文件,第1张

在做图像处理中通常要对图像文件连续读取,因此需要遍历整个文件夹中的文件。不要裂段着陪森急在IO.H、WCHAR.H中提供了_finddata_t, _wfinddata_t, _wfinddatai64_t 结构,通过_findfirst可以得到满足条件的第一个文件的句柄,如下:long_findfirst(char*filespec,struct_finddata_t*fileinfo),然后你可以使用_findnext函数得芦源亩到用_findfirst的句柄后的文件指针,如此就可以遍历所有满足条件的文件。long hFileif( (hFile = _findfirst( LPCTSTR(pathWild), &c_file )) == -1L ){::AfxMessageBox("No image files in current directory!/n" ) }else{do { AfxGetMainWnd()->SetWindowText(c_file.name)} while (_findnext(hFile, &c_file) == 0)}_findclose(hFile)对了,别忘了在你的工程中包括头文件IO.H

CString pathWild = "你的路径" + _T("\\*.doc")

struct _finddata_t c_file

long hFile

if( (hFile = _findfirst( LPCTSTR(pathWild), &c_file )) == -1L)

{

MessageBox("选择目录拦睁下并无doc文件,请歼轮确认")

_findclose(hFile)

return

}

else

{

do

{

//这里就是文件名,加上之前的路径就是完整路径了

CString strFileName = c_file.name

//下面就是将strFileName打印出来即氏衡信可

}

while (_findnext(hFile, &c_file) == 0)

}

_findclose(hFile)

递归获和坦燃取信慧本文件夹(包括子文件夹)中的文件:

int CountDirectory(CString path)

{

int count = 0

CFileFind finder

BOOL working = finder.FindFile(path + "\\唤虚*.*")

while (working)

{

working = finder.FindNextFile()

if (finder.IsDots())

continue

if (finder.IsDirectory())

count += CountDirectory(finder.GetFilePath())

else

count++

}

return count

}

只获取本文件夹中的文件:

int CountDirectory(CString path)

{

int count = 0

CFileFind finder

BOOL working = finder.FindFile(path + "\\*.*")

while (working)

{

working = finder.FindNextFile()

if (finder.IsDots())

continue

if (!finder.IsDirectory())

count++

}

return count

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12223933.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存