MFC 在指定的文件夹中寻找指定的文件 请教高手

时间:2022-10-27 12:27:47
CFileFind finder;
BOOL success=finder.FindFile("路径")//文件名是不确定的,怎么判断呀?可以把路径写成变量么?
while(success)
{

success=finder.FindNextFile();
CString NAme=finder.GetFileTitle();
                ………………
                
}
求大神!

7 个解决方案

#1


system("dir /b /a-d c:\\*.* >d:\\allfiles.txt");
//读文件d:\\allfiles.txt的内容即C:\\下所有文件的名字
system("dir /b /a-d /s c:\\*.* >d:\\allfilesinsub.txt");
//读文件d:\\allfilesinsub.txt的内容即C:\\下所有文件的名字包含子目录
system("dir /b /ad  c:\\*.* >d:\\alldirs.txt");
//读文件d:\\alldirs.txt的内容即C:\\下所有子目录的名字
请记住,能用shell命令获取文件、文件夹信息或者操作文件、文件夹最好用shell命令获取或者操作,而不要用各种API获取或者操作,因为当遇到非法文件夹名或非法文件名或非法文件长度、非法文件日期、压缩文件、链接文件、稀疏文件……等各种意料之外的情况时,API会处理的不全面或陷入死循环,而shell命令不会。

#2


没明白题意。指定的文件为什么文件名还不确定?lz意思是特定后缀的文件?

#3


可以这样写吧!
void FindAll(const CString&  path,CStringArray& Allfiles)
{
CFileFind finder;
BOOL success=finder.FindFile("path+_T("\\*.x")")//文件名是不确定的,怎么判断呀?可以把路径写成变量么?

while(success)
{
Allfiles.Add(finder.GetFileTitle());

success=finder.FindNextFile();
//CString NAme=finder.GetFileTitle();
                ………………
                
}

}

#4


引用 2 楼 starytx 的回复:
没明白题意。指定的文件为什么文件名还不确定?lz意思是特定后缀的文件?


可能描述的意思不清楚。我在EDIT里面输入一个文件名(虽然每次输入的不一样,但是都是PDF文件,统一放在一个文件夹里面),然后点下button控件,他会搜索并打印出来 这样的

#5


当然可以写成变量

#6


引用 5 楼 adlay 的回复:
当然可以写成变量

  怎么定义呢?求教

#7


CString path = "C:\\";
path += "Hello\\";
....

CFileFind finder;
BOOL success=finder.FindFile(path)//文件名是不确定的,怎么判断呀?可以把路径写成变量么?
while(success)

#1


system("dir /b /a-d c:\\*.* >d:\\allfiles.txt");
//读文件d:\\allfiles.txt的内容即C:\\下所有文件的名字
system("dir /b /a-d /s c:\\*.* >d:\\allfilesinsub.txt");
//读文件d:\\allfilesinsub.txt的内容即C:\\下所有文件的名字包含子目录
system("dir /b /ad  c:\\*.* >d:\\alldirs.txt");
//读文件d:\\alldirs.txt的内容即C:\\下所有子目录的名字
请记住,能用shell命令获取文件、文件夹信息或者操作文件、文件夹最好用shell命令获取或者操作,而不要用各种API获取或者操作,因为当遇到非法文件夹名或非法文件名或非法文件长度、非法文件日期、压缩文件、链接文件、稀疏文件……等各种意料之外的情况时,API会处理的不全面或陷入死循环,而shell命令不会。

#2


没明白题意。指定的文件为什么文件名还不确定?lz意思是特定后缀的文件?

#3


可以这样写吧!
void FindAll(const CString&  path,CStringArray& Allfiles)
{
CFileFind finder;
BOOL success=finder.FindFile("path+_T("\\*.x")")//文件名是不确定的,怎么判断呀?可以把路径写成变量么?

while(success)
{
Allfiles.Add(finder.GetFileTitle());

success=finder.FindNextFile();
//CString NAme=finder.GetFileTitle();
                ………………
                
}

}

#4


引用 2 楼 starytx 的回复:
没明白题意。指定的文件为什么文件名还不确定?lz意思是特定后缀的文件?


可能描述的意思不清楚。我在EDIT里面输入一个文件名(虽然每次输入的不一样,但是都是PDF文件,统一放在一个文件夹里面),然后点下button控件,他会搜索并打印出来 这样的

#5


当然可以写成变量

#6


引用 5 楼 adlay 的回复:
当然可以写成变量

  怎么定义呢?求教

#7


CString path = "C:\\";
path += "Hello\\";
....

CFileFind finder;
BOOL success=finder.FindFile(path)//文件名是不确定的,怎么判断呀?可以把路径写成变量么?
while(success)