如何获得一个文件夹下所有txt文件的文件名

kivcare 2009-12-17 04:17:14
期待高手解答,有个例子就更好了,谢谢!
...全文
224 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
dskit 2009-12-17
  • 打赏
  • 举报
回复
怎么没有人想到用grep
kivcare 2009-12-17
  • 打赏
  • 举报
回复
谢谢以上几位的解答,已经解决。用的方法类似selooloo和zhao4zhong1的
DLevel 2009-12-17
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 baihacker 的回复:]
C/C++ code#include<iostream>
#include<stdio.h>
#include<windows.h>
#include<tchar.h>usingnamespace std;

typedeflonglong int64;
typedefvoid (*ENUM_FILES_FUNCTION)(const TCHAR*, LPWIN32_FILE_ATTRIB?-
[/Quote]

牛13,人家连怎么读取都不知道的,上天书呢。呵呵。写的不赖。。。
zhufengsheng 2009-12-17
  • 打赏
  • 举报
回复
我会unix平台下的读取
不会window的
赵4老师 2009-12-17
  • 打赏
  • 举报
回复
system("cmd /c dir /a-d /b c:\\文件夹\\*.txt >c:\\alltxtfiles.txt");
然后从文件c:\alltxtfiles.txt里面读。
selooloo 2009-12-17
  • 打赏
  • 举报
回复
system("dir d:\\test\\*.txt -a > txtfile.txt");

d:\\test\\换成相应的文件夹即可,结果保存在txtfile.txt里,txtfile.txt在当前目录下
baihacker 2009-12-17
  • 打赏
  • 举报
回复
#include <iostream>
#include <stdio.h>
#include <windows.h>
#include <tchar.h>
using namespace std;

typedef long long int64;
typedef void (*ENUM_FILES_FUNCTION)(const TCHAR*, LPWIN32_FILE_ATTRIBUTE_DATA);

#define SYS_IS_DIRECTORY(f) (f & FILE_ATTRIBUTE_DIRECTORY)
#define SYS_IS_HIDDEN(f) (f & FILE_ATTRIBUTE_HIDDEN)
#define SYS_IS_READONLY(f) (f & FILE_ATTRIBUTE_READONLY)
#define SYS_IS_SYSTEM(f) (f & FILE_ATTRIBUTE_SYSTEM)
extern void EnumFiles(const TCHAR*, ENUM_FILES_FUNCTION);
const TCHAR* GetExtendName(const TCHAR* szFileName)
{
static TCHAR result[32] = {0};
const TCHAR* t = szFileName;
unsigned int i = 32;

if (!szFileName)
{
result[0] = 0;
return result;
}

unsigned int len = _tcslen(szFileName);
while (len-- && --i)
if (szFileName[len] == '.' || szFileName[len] == '\\')
break;
if (i == 0 || szFileName[len] == '\\' || len == 0)
result[0] = 0;
else
::_tcscpy(result, szFileName + len);

return result;
}

void fuck(const TCHAR* f, LPWIN32_FILE_ATTRIBUTE_DATA)
{
if (!_tcscmp(GetExtendName(f), ".txt")) cout << f << endl;
}
void EnumFiles(const TCHAR* szSourceDir, ENUM_FILES_FUNCTION callback_fun)
{
if (!szSourceDir) return;

WIN32_FIND_DATA FindFileData;
WIN32_FILE_ATTRIBUTE_DATA FindFileAttr;
HANDLE hFind = INVALID_HANDLE_VALUE;
TCHAR currDir[MAX_PATH];
TCHAR Result[MAX_PATH];

_tcsncpy(currDir, szSourceDir, _tcslen(szSourceDir) + 1);
_tcsncat(currDir, _T("\\*"), 3);

hFind = FindFirstFile(currDir, &FindFileData);

if (hFind == INVALID_HANDLE_VALUE) return;
do
{
if (*FindFileData.cFileName == '.') continue;
_stprintf(Result, _T("%s\\%s"), szSourceDir, FindFileData.cFileName);
if (callback_fun && GetFileAttributesEx(Result, GetFileExInfoStandard, &FindFileAttr))
{

(*callback_fun)(Result, &FindFileAttr);
}
} while (FindNextFile(hFind, &FindFileData));
}




int main()
{
EnumFiles("d:\\projects", fuck);
return 0;
}
sduxiaoxiang 2009-12-17
  • 打赏
  • 举报
回复

CList<CString> pathList;

if(path.Right(1)!="\\")
path+=TEXT("\\");
path+=TEXT("*.txt");

while(!pathList.IsEmpty())
{

CFileFind file;
BOOL hasNext = TRUE;
if( !file.FindFile(path) )
hasNext=FALSE;

while(hasNext)
{
hasNext = file.FindNextFile();
// 跳过点文件夹
if( file.IsDots()) continue;


if(fileType(file.GetFilePath()) == 0)//找到txt文件
{
//处理txt文件
}

}

}

herman~~ 2009-12-17
  • 打赏
  • 举报
回复
这个能自己google
wuyu637 2009-12-17
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20090203/11/5e0d2d83-2ce0-4a93-8d17-77a814e4e319.html

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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