社区
C语言
帖子详情
请问如何用c读取并显示一个目录下的所有文件名
hylz0
2005-04-24 08:34:17
各位帮帮忙,谢谢
...全文
460
11
打赏
收藏
请问如何用c读取并显示一个目录下的所有文件名
各位帮帮忙,谢谢
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
melon_soup
2005-04-25
打赏
举报
回复
用FindFile函数吧。一个递归就可以实现了。
dataat
2005-04-25
打赏
举报
回复
呵呵,我忘了问了,你是在什么系统下面做啊?我是在红帽9下面的。在库中有这个头文件,/usr/include/dirent.h,其他系统的你就自己找找吧,应该有类似的。
stonegoldaustin
2005-04-25
打赏
举报
回复
#include <iostream>
#include <stdlib.h>
#include <dir.h>
using namespace std;
int main(int argc, char *argv[])
{
char* mPath = "C:\\*.*";
int mResult;
struct _finddata_t mData;
mResult = _findfirst(mPath, &mData);
if(mResult)
{
cout << mData.name << endl;
while(_findnext(mResult, &mData)==0)
{
cout << mData.name << endl;
}
}
_findclose(mResult);
system("PAUSE");
return 0;
}
galanz
2005-04-25
打赏
举报
回复
mark
mostideal
2005-04-24
打赏
举报
回复
只有DIR.H
系统不含有dirent.h头文件。。
violetkz
2005-04-24
打赏
举报
回复
从网上找来的,希望对你有帮助。
http://www.pcdog.com/p/html/20041125/251120042694_1.htm
#include 〈direct.h〉
#include 〈io.h〉
......
void CSearchDlg::OnButtonSearch()
{
// TODO: Add your control notification handler code here
char szFilename[80];
// 字符串 szFilename 表示要查找的文件名
strcpy(szFilename,″Mytext.txt″);
_chdir(″d:\\″); // 进入要查找的路径(也可为某一具体的目录)
// 查找文件, 如果查到则显示文件的路径全名
Search_Directory(szFilename);
// 为CSearchDlg类的一成员函数
MessageBox(″查找文件完毕!″);
// 显示查找完毕的信息
}
3.在CSearchDlg类中增加成员函数Search_Directory,它将完成具体的文件查找工作,代码如下:
void CSearchDlg::Search_Directory(char* szFilename)
{
long handle;
struct _finddata_t filestruct;
//表示文件(或目录)的信息
char path_search[_MAX_PATH];
//表示查找到的路径结果
// 开始查找工作, 找到当前目录下的第一个实体(文件或子目录),
// ″*″表示查找任何的文件或子目录, filestruct为查找结果
handle = _findfirst(″*″, &filestruct);
// 如果handle为-1, 表示当前目录为空, 则结束查找而返回
if((handle == -1))
return;
// 检查找到的第一个实体是否是一个目录(filestruct.name为其名称)
if( ::GetFileAttributes(filestruct.name) & FILE—ATTRIBUTE—DIRECTORY )
{
// 如果是目录, 则进入该目录并递归调用函数Search_Dirctory进行查找,
// 注意: 如果目录名的首字符为′.′(即为″.″或″..″), 则不用进行查找
if( filestruct.name[0] != ′.′ )
{
—chdir(filestruct.name);
Search_Directory(szFilename);
// 查找完毕之后, 返回上一级目录
—chdir(″..″);
}
}
else // 如果第一个实体不是目录, 则检查是否是要查找的文件
{
// stricmp对两字符串进行小写形式的对比, 返回为0表示完全一致
if( !stricmp(filestruct.name, szFilename) )
{
// 先获得当前工作目录的全路径
—getcwd(path_search,—MAX—PATH);
// 再获得文件的完整的路径名(包含文件的名称)
strcat(path_search,″\\″);
strcat(path—search,filestruct.name);
MessageBox(path_search); //输出显示
}
}
// 继续对当前目录中的下一个子目录或文件进行与上面同样的查找
while(!(—findnext(handle,&filestruct)))
{
if( ::GetFileAttributes(filestruct.name) & FILE—ATTRIBUTE—DIRECTORY )
{
if(*filestruct.name != ′.′)
{
—chdir(filestruct.name);
Search_Directory(szFilename);
—chdir(″..″);
}
}
else
{
if(!stricmp(filestruct.name,szFilename))
{
—getcwd(path—search,—MAX—PATH);
strcat(path_search,″\\″);
strcat(path_search,filestruct.name);
MessageBox(path_search);
}
}
}
—findclose(handle);
// 最后结束整个查找工作
}
xunknown
2005-04-24
打赏
举报
回复
这里有一个C++的例子
你可以考虑用C来实现
http://blog.csdn.net/xunknown/archive/2005/04/09/340701.aspx
hylz0
2005-04-24
打赏
举报
回复
fatal error C1083: Cannot open include file: 'dirent.h': No such file or directory
怎么会这样
dataat
2005-04-24
打赏
举报
回复
#include <stdio.h>
#include<dirent.h>
#include<sys/types.h>
int main(int argc, char *argv[])
{
DIR *dp;
struct dirent * dirp;
{
};
if(argc<2)
{
printf("Usage :dir path\n");
exit(-1);
}
if((dp=opendir(argv[1]))==NULL)
{
printf("opendir error");
exit(-1);
}
while((dirp=readdir(dp))!=NULL)
printf("%s \t \n",dirp->d_name);
closedir(dp);
return 0;
}
上面的程序符合要求,关键是dirent结构。你看看吧。
hylz0
2005-04-24
打赏
举报
回复
要实现dir命令功能
llmsn
2005-04-24
打赏
举报
回复
看微软的DOS系统是怎么实现的.是不是用DIR显示子目录命令啊.
(VS2015 C++)获取电脑文件夹下文件的名称,类型,大小,后缀信息
总的来说,VS2015 C++ MFC实现的这个功能展示了如何在Windows环境下遍历文件系统并获取文件属性。通过这种方式,开发者可以构建实用的工具,例如文件管理器或者系统分析应用,帮助用户更好地理解和管理他们的文件。
FatFs文件系统支持长
文件名
的正确用法.docx
设置`_USE_LFN`为1后,文件系统会使用
一个
工作缓冲区来处理长
文件名
,这个缓冲区占用`(_MAX_LFN + 1) * 2`字节的空间。但要注意,这样的配置仅支持英文长
文件名
,对于包含非英文字符(如中文)的长
文件名
,还需...
pb 获取子文件夹名称
在这个场景中,开发者可能需要列出
一个
指定
目录
下的所有子
目录
,以便进行进一步的操作,比如遍历文件、
读取
数据或者进行文件管理。 描述中的“listbox控件的属性”提示我们,开发者可能使用了
一个
ListBox控件来展示...
js获取文件里面的所有
文件名
(实例)
- 对符合条件的文件,提取部分
文件名
并存储在
一个
字符串中。 - 计算符合条件的文件数量:`count++` 需要注意的是,这些功能在现代浏览器中通常不适用,因为ActiveXObject是IE特有的,其他浏览器如Firefox、Chrome...
电子-图片
显示
fatfs文件系统emwinSD卡支持长
文件名
支持中文
文件名
201762.rar
标题中的“电子-图片
显示
fatfs文件系统emwinSD卡支持长
文件名
支持中文
文件名
201762.rar”表明这是
一个
关于电子工程领域的项目,重点在于如何在嵌入式系统中实现图片的
显示
,同时涉及到文件系统的管理,特别是FATFS...
C语言
70,023
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章