社区
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中,?
...全文
166
9
打赏
收藏
又遇难题,请教?
在文件夹photo里面的下级目录里面有一些事先不知道文件名的图片文件,也不清楚有多少目录、多少文件,怎样取得里面的jpg文件的文件名。但是如果有010101309201.jpg、010101309299.jpg,那它们一定在photo\0101\013\092下面,010107301299.jpg一定在photo\0101\073\012下面,请问该如何取得这些文件的文件名放到wjm.dbf中,?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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 (十豆三) 版主:能说说具体怎么用吗?谢谢啦。
大白话面试
遇
难题
,应对策略是什么?
面试
遇
到
难题
时,可采取多种策略应对。要沉着冷静,通过心理暗示和停顿思考稳住心态;确认问题,避免答非所问;拆解问题,分步作答;结合案例,展示能力;坦诚承认不会的问题,展现学习态度;还可适当反问,体现思考。
SAAS所
遇
难题
本文探讨了SaaS应用在实现及推广过程中面临的六大挑战,包括多用户单应用实例的设计
难题
、数据访问控制统一设计、数据库架构革新、数据归属权处理、数据灾备与数据中心建设以及服务等级协议(SLA)等问题。
Win11 22H2更新至23H2
遇
难题
?三种解决方案助你快速升级
许多用户在将Win11 22H2更新至23H2,安装KB5031455补丁时
遇
难题
。本文介绍三种解决方法,包括利用系统疑难解答工具、重置Windows更新组件、手动下载安装23H2镜像文件,还给出注意事项,助用户顺利完成系统升级。
质子电池
遇
难题
?纳米电极有高招
质子陶瓷电化学电池(PCECs)在发电和制氢领域前景广阔,但面临电极活性和耐久性
难题
。科研团队研发出纳米纤维结构超多孔(NAUP)电极,该电极能降低极化电阻,提升电池在燃料电池和蒸汽电解模式下的性能,且在各种降解测量和热循环中表现出良好的耐久性和稳定性。
面试所
遇
不会
难题
本文深入探讨了Vue.js中的关键概念,包括修饰符的作用、route与router的区别、页面间跳转传值方法及params与query的差异。通过具体示例,帮助读者理解Vue路由管理和数据传递的机制。
VFP
2,749
社区成员
29,142
社区内容
发帖
与我相关
我的任务
VFP
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
复制链接
扫一扫
分享
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章