VFP如何返回多个文件名---百元赏解

来源:百度知道 编辑:UC知道 时间:2024/05/28 12:20:46
本人想用VFP做一个MP3播放器,遇到难点,查了半年资料也没有解决,差点没发誓永远不用VFP!请各位高手指点,明明白白告诉我,不胜感激,赏解100元,就在VFP里如何用编程方法一次返回多个文件名?
类似getfile() putfile()的函数,但它每次只能返回一个文件名,有没有可以返回多个文件名的?

你的问题就是历尽文件夹下所有文件的问题。
可以使用ADIR()函数解决
如果是多层文件夹,就需要采用递归调用的方式.

ADIR()函数用法:
Adir(ArrayName [, cFileSkeleton [, cAttribute [, cCreatorType]]])
使用:
X=Adir(Myml,′C:\TEMP\*.DBF′)
返回:
X=符合cFileSkeleton条件的文件或目录个数
Myml是一个有五列内容的数组,这五列的含义是:
1 文件名 字符型
2 文件大小 数值型
3 文件日期 日期型
4 文件时间 字符型
5 文件属性 字符型
例:我们想得到某个文件的大小或文件的修改日期及属性:
X=Adir(Myml,′C:\TEMP\abc.DBF′)
IF X〈〉0
wjsize=Myml(1,2) &&取得文件大小
wjdate=Myml(1,3)
&&取得修改日期及属性
wjAttr=Myml(1,5) &&取得文件属性
ELSE
wait wind ′没有您指定的文件′
ENDIF
文件属性的含义:
A 档案文件(可读写)
H 隐藏文件
R 只读文件
S 系统文件
D 目录或文件夹

以下是我的一个遍历文件夹下多个文件的自定义函数,如果你有多个目录可以采用递归调用的办法来实现。
parameters fdira,fpath,ftypc1,ftypc2,ftypc3,ftypc4,layer
local fifm[1],dfc,i
if parameters()<7
layer=0
endif
if right(fpath,1)#"