24小时热门版块排行榜    

查看: 1532  |  回复: 3

orcimbalance

木虫 (著名写手)

[求助] 如何访问文件夹底下文件名没有规则的文件!

C语言如何访问文件夹底下文件名没有规律的文件?有什么函数实现吗?本人论文新手加C语言菜鸟!只能悬赏一分,望谅解!
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

imyourkobe

铁杆木虫 (著名写手)

xzhdty: , 欢迎常来程序语言看看 2012-03-17 19:46:07
根据后缀遍历文件,一个个访问吧。
2楼2012-03-17 18:15:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sharkyurui1

金虫 (初入文坛)

【答案】应助回帖

感谢参与,应助指数 +1
直接用WIN32 API遍历文件夹下所有文件就行了,详见http://apps.hi.baidu.com/share/detail/30522914
3楼2012-03-20 10:39:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lurencyj

木虫 (著名写手)

【答案】应助回帖


感谢参与,应助指数 +1
orcimbalance: 金币+1, ★★★★★最佳答案 2012-06-19 19:45:00
帮你找了两个直接的资料

第一个资料:http://topic.csdn.net/t/20060225/18/4577243.html
在C中,使用findfirst和findnext两个函数就可以遍历目录了,例如:
CODE:
struct   ffblk   FFileStru;
int   iValue;
iValue   =   findfirst( "c:\test\*.* ",   FFileStru,   0);           //0表示寻找所有文件和目录
while(iValue)
{
                ...........             //这里是处理语句,有关文件的信息保存在结构变量FFileStru里
                iValue   =   findnext(FFileStru);
}

findfirst的第三个参数可以具有下列值:
CODE:
#define   FA_RDONLY        0x01         /*   Read   only   attribute   */
#define   FA_HIDDEN        0x02         /*   Hidden   file   */
#define   FA_SYSTEM        0x04         /*   System   file   */
#define   FA_LABEL        0x08         /*   Volume   label   */
#define   FA_DIREC        0x10         /*   Directory   */
#define   FA_ARCH        0x20         /*   Archive   */

遍历一个文件夹可以仿照以上代码写个递归就OK了。

第二个资料:http://hi.baidu.com/tjkvvv/blog/item/8e848e3ed139bcfb828b130e.html

c语言目录操作- 这里给你提供一些C的目录操作函数,原型声明所在头文件为dir.h、dos.h,仅供参考:
CODE:
int chdir(char *path) 使指定的目录path(如:"C:\\WINDOWS")变成当前的工作目录,成功返回0
int findfirst(char *pathname,struct ffblk *ffblk,int attrib)查找指定的文件,成功返回0
pathname为指定的目录名和文件名,如"C:\\WINDOWS\\TXT"

ffblk为指定的保存文件信息的一个结构,定义如下:
CODE:
struct ffblk
{
char ff_reserved[21]; /*DOS保留字*/
char ff_attrib; /*文件属性*/
int ff_ftime; /*文件时间*/
int ff_fdate; /*文件日期*/
long ff_fsize; /*文件长度*/
char ff_name[13]; /*文件名*/
}

attrib为文件属性,由以下字符代表

FA_RDONLY 只读文件, FA_LABEL 卷标号
FA_HIDDEN 隐藏文件, FA_DIREC 目录
FA_SYSTEM 系统文件, FA_ARCH 档案

例:
CODE:
struct ffblk ff;
findfirst("*.DOC",&ff,FA_RDONLY);
int findnext(struct ffblk *ffblk) 取匹配finddirst的文件,成功返回0
void fumerge(char *path,char *drive,char *dir,char *name,char *ext)
此函数通过盘符drive(C:、A:等),路径dir(\TC、\BC\LIB等),文件名name(TC、WPS等),扩展名ext(.EXE、.COM等)组成一个文件名,存在path中.
int fnsplit(char *path,char *drive,char *dir,char *name,char *ext)
此函数将文件名path分解成盘符drive(C:、A:等),路径dir(\TC、\BC\LIB等),文件名name(TC、WPS等),扩展名ext(.EXE、.COM等),并分别存入相应的变量中.

int getcurdir(int drive,char *direc) 此函数返回指定驱动器的当前工作目录名称
drive 指定的驱动器(0=当前,1=A,2=B,3=C等)
direc 保存指定驱动器当前工作路径的变量 成功返回0
char *getcwd(char *buf,iint n) 此函数取当前工作目录并存入buf中,直到n个字节长为为止.错误返回NULL
int getdisk() 取当前正在使用的驱动器,返回一个整数(0=A,1=B,2=C等)
int setdisk(int drive) 设置要使用的驱动器drive(0=A,1=B,2=C等),返回可使用驱动器总数
int mkdir(char *pathname) 建立一个新的目录pathname,成功返回0
int rmdir(char *pathname) 删除一个目录pathname,成功返回0
char *mktemp(char *template) 构造一个当前目录上没有的文件名并存于template中.
char *searchpath(char *pathname) 利用MSDOS找出文件filename所在路径,此函数使用DOS的PATH变量,未找到文件返回NULL.

很女子很弓虽大
4楼2012-03-20 16:36:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 orcimbalance 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[硕博家园] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +3 LIbGuocjEEYw 2026-08-26 4/200 2026-08-27 02:01 by Ie9AyIAvGbvs
[基金申请] 基金不中,共勉 +5 eulota 2026-08-26 5/250 2026-08-26 23:33 by young90
[基金申请] 我不理解! +15 Edward_pc 2026-08-26 23/1150 2026-08-26 20:34 by zzuzxg
[基金申请] 2026年的国家社科基金项目通讯评审的新规则与新动向、新挑战 +7 process2012 2026-08-23 10/500 2026-08-26 19:23 by hmhminy
[基金申请] 2026国自然函评费到账 +22 羊腰板 2026-08-21 25/1250 2026-08-26 15:00 by zuocuiping
[基金申请] 出来了 +9 trojank 2026-08-26 9/450 2026-08-26 14:25 by 宝贝虫子
[基金申请] 为什么国自然不能直接公布 +4 bjdxyxy 2026-08-26 4/200 2026-08-26 13:12 by qingmu1201
[基金申请] 科研孤儿太难了 +21 我4大白菜 2026-08-20 22/1100 2026-08-26 11:29 by nlgza
[基金申请] 国际合作可查了,中了面上 +18 Ldrop2023 2026-08-26 18/900 2026-08-26 11:15 by cmrandy
[基金申请] 系统进不去 +4 yanglien 2026-08-26 5/250 2026-08-26 11:10 by wenfengw83
[基金申请] 怎么看青基中了没有啊 +4 叶九微 2026-08-26 4/200 2026-08-26 10:52 by xiacongxu
[基金申请] 今天务委会开完了,明天出结果吗 +19 angus9576 2026-08-25 23/1150 2026-08-26 10:03 by zp519
[基金申请] 某些机构,以效率低为荣,以效率低作为存在感 +9 yuleib84 2026-08-25 10/500 2026-08-25 17:14 by alexon
[基金申请] 如果此刻你正在为国基感到焦虑,不妨来听听这首《基金之外》 +8 scalable 2026-08-24 8/400 2026-08-25 12:52 by jnhyjjm
[基金申请] 人气不行了 +11 fansofjerry 2026-08-21 11/550 2026-08-25 11:04 by 孤独的英雄6
[教师之家] 导师吐槽:我怎么摊上了这么个极品研究生! +3 苏东坡二世 2026-08-23 3/150 2026-08-25 10:35 by shisan1313
[基金申请] 我面上完蛋了 +13 且听虎啸 2026-08-20 14/700 2026-08-25 09:10 by mrkang
[基金申请] 建议基金发布提前给出明确的时间点 +13 kulium 2026-08-21 16/800 2026-08-24 16:27 by superceng
[基金申请] 让我中一个面上吧! +13 大萍1987 2026-08-20 16/800 2026-08-24 10:23 by 太傻了
[基金申请] 基金啊基金 +4 longfie172 2026-08-20 4/200 2026-08-21 08:58 by mark mao
信息提示
请填处理意见