社区
VFP
帖子详情
又遇难题,请教?
bdx808
2009-09-11 08:12:36
在文件夹photo里面的下级目录里面有一些事先不知道文件名的图片文件,也不清楚有多少目录、多少文件,怎样取得里面的jpg文件的文件名。但是如果有010101309201.jpg、010101309299.jpg,那它们一定在photo\0101\013\092下面,010107301299.jpg一定在photo\0101\073\012下面,请问该如何取得这些文件的文件名放到wjm.dbf中,?
...全文
145
9
打赏
收藏
又遇难题,请教?
在文件夹photo里面的下级目录里面有一些事先不知道文件名的图片文件,也不清楚有多少目录、多少文件,怎样取得里面的jpg文件的文件名。但是如果有010101309201.jpg、010101309299.jpg,那它们一定在photo\0101\013\092下面,010107301299.jpg一定在photo\0101\073\012下面,请问该如何取得这些文件的文件名放到wjm.dbf中,?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
bdx808
2009-09-11
打赏
举报
回复
谢谢版主
十豆三
2009-09-11
打赏
举报
回复
如果只需查找
JPG
文件,将
nFoundCount
=
FindFiles
(
"C:\photo"
,
"*.*"
, @
aFiles
)
改为
nFoundCount
=
FindFiles
(
"C:\photo"
,
"*.jpg"
, @
aFiles
)
十豆三
2009-09-11
打赏
举报
回复
作者:Foxer
今天赢一个网友的要求,做一个能够支持通配符的文件查找程序,希望对大家能有帮助。
这个程序有两个方面值得看:
1
.
这是一个递归程序,递归程序一般不大好写,容易陷入死循环或循环不完整
2
.
可以学习一下如何用数组返回函数的值。另外能学习一点儿ADIR、ADDBS这类目录函数的使用方法
我以前在这里也发过一个类似的程序,但是那个是找某一个文件的,这个程序是在那个程序的基础上改的,也算是我的一个进步。
现在转向C
#
,很少做VFP程序了,算是给大家的一个小礼物!
Declare
aFiles
[1]
nFoundCount
=
FindFiles
(
"C:\photo"
,
"*.*"
, @
aFiles
)
Clear
?
"找到"
,
nFoundCount
,
"个文件"
Display
Memory
Like
aFiles
Return
Function
FindFiles
Lparameters
cPath
,
cFindFile
,
aFindFiles
External
Array
aFindFiles
If
Empty
(
cPath
)
Or
Empty
(
cFindFile
)
Return
""
Endif
cFindFile
=
Alltrim
(
Upper
(
cFindFile
))
If
Diskspace
(
cPath
) <
0
&& 不存在
Return
""
Endif
Declare
aFindFiles
[1]
nFoundCount
=
FileLocate
(
cPath
,
cFindFile
, @
aFindFiles
)
Return
nFoundCount
Endfunc
Function
FileLocate
Lparameters
cPath
,
cFindFile
,
aFindFiles
Private
All
External
Array
aFindFiles
nFoundCount
=
0
Local
Array
aFiles
[1]
Local
Array
aMatchFiles
[1]
nFiles
=
Adir
(
aFiles
,
Addbs
(
cPath
) +
"*.*"
,
"DRASH"
,
1
)
nMatchFiles
=
Adir
(
aMatchFiles
,
Addbs
(
cPath
) +
cFindFile
,
"DRASH"
,
1
)
If
nMatchFiles
>
0
For
i
=
1
To
nMatchFiles
If
Not
(
aMatchFiles
[i,1]
=
"."
Or
aMatchFiles
[i,1]
=
".."
)
If
"D"
$
aMatchFiles
[i,5]
&& 目录
Loop
Endif
nFoundCount
=
nFoundCount
+
1
Declare
aFindFiles
[nFoundCount]
aFindFiles
[nFoundCount]
=
Addbs
(
cPath
) +
aMatchFiles
[i,1]
Endif
Endfor
Endif
If
nFiles
>
0
For
i
=
1
To
nFiles
If
aFiles
[i,1]
=
"."
Or
aFiles
[i,1]
=
".."
Loop
Endif
If
"D"
$
aFiles
[i,5]
&& 目录
Local
Array
aSubFoundFiles
[1]
nSubFoundCount
=
FileLocate
(
Addbs
(
cPath
) +
aFiles
[i,1]
,
cFindFile
, @
aSubFoundFiles
)
If
nSubFoundCount
>
0
&& 找到了
For
j
=
1
To
nSubFoundCount
nFoundCount
=
nFoundCount
+
1
Declare
aFindFiles
[nFoundCount]
aFindFiles
[nFoundCount]
=
aSubFoundFiles
[j]
Endfor
Endif
Endif
Endfor
Endif
Return
nFoundCount
Endfunc
bdx808
2009-09-11
打赏
举报
回复
比如有很多010101309201、010101309299、....990109309501(photo\9901\093\095)...等等,
bdx808
2009-09-11
打赏
举报
回复
谢谢三位版主,单独一个文件夹,我会用adir(),但一层一层或递归,我就不会了,请说详细些好吗?
ACMAIN_CHM
2009-09-11
打赏
举报
回复
[Quote= #1 apple_8180(十豆三) ]一层一层 Adir()[/Quote]
逐层检查下去了,可以使用递归函数。
还有一个方法,就是调用WINDOWS系统命令
cd c:\temp\xx
dir *.jbp /s >ff.txt
然后将ff.txt 导入。
WWWWA
2009-09-11
打赏
举报
回复
要用到递归调用,用FSO试试
十豆三
2009-09-11
打赏
举报
回复
一层一层 Adir()
bdx808
2009-09-11
打赏
举报
回复
apple_8180 (十豆三) 版主:能说说具体怎么用吗?谢谢啦。
送东阳马生序课文分析.doc
- 成人后求师困难包括:询问
难题
时可能遭
遇
严厉斥责,如“或
遇
其叱咄”;即使受到冷
遇
,仍能保持恭敬,如“色愈恭,礼愈至”;只有在老师高兴时才敢再次
请教
,如“俟其欣悦”。 4. **课文的教育意义**: - 宋濂的...
2021新部编人教版三年级上册《道德与法治》第二次月考考试题及答案一.pdf
1.
遇
到学习
难题
,可以通过查阅资料、
请教
老师或同学、独立思考、上网搜索等方式寻找解决方案。 2. 当朋友来家里做客时,作为主人要热情接待,提供舒适的环境,分享玩具或游戏,共同参与活动,确保朋友在家中感到...
【新教材】精品统编版三年级上册道德与法治册总复习知识点重点知识点梳理打包.pdf
2.
遇
到
难题
,可以通过查阅资料、
请教
他人来解决问题,坚持尝试也能培养新技能。 3. 时间管理是自主学习的关键,珍惜时间,合理规划,可以提高效率。 三、校园生活 1. 学校的每个角落都承载了我们的记忆,我们要...
新部编版三年级道德与法治上册期中考试题(附答案).pdf
1. 测验时
遇
到
难题
的处理:应坚守诚信原则,独立思考,不抄袭他人答案,若实在不会,可以标记后待考试结束后向老师
请教
。 2. 解决邻居车辆阻挡车库门的问题:可以礼貌地与邻居沟通,说明情况,提出合理建议;如果...
Java面试必看
4. **成功的案例或成就**:可以是项目中的亮点、解决的
难题
等。 5. **礼貌**:每次回答后都应礼貌地说声“谢谢”。 #### 二、个性上的最大优点(70%) **知识点概述:** 面试官希望通过此问题了解求职者是否具备...
VFP
2,749
社区成员
29,139
社区内容
发帖
与我相关
我的任务
VFP
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
复制链接
扫一扫
分享
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章