关于搜索文件夹的问题!!!

唐勉的技术博客 2003-02-27 12:26:51
当我在我的程序里面知道了一个文件夹的路径以后,如何才能知道里面都有些什么文件,我需要知道这个文件夹里面每一个文件的文件名和扩展名,怎么做???
希望各位高手帮忙!!!
...全文
110 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Leoparder 2003-02-27
  • 打赏
  • 举报
回复
CString m_strFindPath = "c:\\test";

改成

CString m_strFindPath = "c:\\test\\*.*";
Leoparder 2003-02-27
  • 打赏
  • 举报
回复
CFileFind finder;
CString m_strFindPath = "c:\\test";

BOOL bWork = finder.FindFile("c:\\test",0);
while(bWork)
{
bWork = finder.GetNextFile();
if(finder.IsDots())
{
continue;
}
if(finder.IsDirectory( ))
{
//用第归
}
CString str1; //获得文件路径
str1 = finder.GetFilePath( );
}
具体用法查msdn中CFileFind类的各个函数
^-^

kingcom_xu 2003-02-27
  • 打赏
  • 举报
回复
CFileFind finder;
BOOL bWorking = finder.FindFile("C:\\windows\\*.*");
while (bWorking)
{
bWorking = finder.FindNextFile();
MessageBox(finder.GetFileName());
}
zzh5335 2003-02-27
  • 打赏
  • 举报
回复
WIN32_FIND_DATA FileData;
HANDLE hSearch;
DWORD dwAttrs;
char szDirPath[] = "c:\\TEXTRO\\";
char szNewPath[MAX_PATH];
char szHome[MAX_PATH];

BOOL fFinished = FALSE;

// Create a new directory.

if (!CreateDirectory(szDirPath, NULL))
{
ErrorHandler("Couldn't create new directory.");
}

// Start searching for .TXT files in the current directory.

hSearch = FindFirstFile("*.txt", &FileData);
if (hSearch == INVALID_HANDLE_VALUE)
{
ErrorHandler("No .TXT files found.");
}

// Copy each .TXT file to the new directory
// and change it to read only, if not already.

while (!fFinished)
{
lstrcpy(szNewPath, szDirPath);
lstrcat(szNewPath, FileData.cFileName);
if (CopyFile(FileData.cFileName, szNewPath, FALSE))
{
dwAttrs = GetFileAttributes(FileData.cFileName);
if (!(dwAttrs & FILE_ATTRIBUTE_READONLY))
{
SetFileAttributes(szNewPath,
dwAttrs | FILE_ATTRIBUTE_READONLY);
}
}
else
{
ErrorHandler("Couldn't copy file.");
}

if (!FindNextFile(hSearch, &FileData))
{
if (GetLastError() == ERROR_NO_MORE_FILES)
{
MessageBox(hwnd, "No more .TXT files.",
"Search completed.", MB_OK);
fFinished = TRUE;
}
else
{
ErrorHandler("Couldn't find next file.");
}
}
}

// Close the search handle.

if (!FindClose(hSearch))
{
ErrorHandler("Couldn't close search handle.");
}
zzh5335 2003-02-27
  • 打赏
  • 举报
回复
在MSDN中搜FindFirst,应该有例程
cheng_young 2003-02-27
  • 打赏
  • 举报
回复
CFileFind

//copy from msdn
#include <afx.h>
#include <iostream>

using namespace std;

void Recurse(LPCTSTR pstr)
{
CFileFind finder;

// build a string with wildcards
CString strWildcard(pstr);
strWildcard += _T("\\*.*");

// start working for files
BOOL bWorking = finder.FindFile(strWildcard);

while (bWorking)
{
bWorking = finder.FindNextFile();

// skip . and .. files; otherwise, we'd
// recur infinitely!

if (finder.IsDots())
continue;

// if it's a directory, recursively search it

if (finder.IsDirectory())
{
CString str = finder.GetFilePath();
cout << (LPCTSTR) str << endl;
Recurse(str);
}
}

finder.Close();
}

void main()
{
if (!AfxWinInit(GetModuleHandle(NULL), NULL, GetCommandLine(), 0)
cout << "panic!" << endl;
else
Recurse(_T("C:"));
}

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧