主题:用什么方法才可以知道文件夹里的文件名?
wanguoxin
[专家分:0] 发布于 2008-07-19 16:56:00
文件路径为"D:\AFD\"
用什么方法能知道AFD里面的文件名?谢谢.
回复列表 (共8个回复)
沙发
xinjie [专家分:630] 发布于 2008-07-19 17:11:00
Adir()
板凳
wanguoxin [专家分:0] 发布于 2008-07-19 18:47:00
谢谢xinjie,能说具体一点吗?还没有成功呀.
3 楼
xinjie [专家分:630] 发布于 2008-07-19 18:54:00
看帮助。
4 楼
lwh1188 [专家分:25840] 发布于 2008-07-19 19:09:00
ADIR( ) 函数
示例 请参阅
将文件信息存放到数组中,然后返回文件个数。
语法
ADIR(ArrayName [, cFileSkeleton [, cAttribute [, cCreatorType]]])
参数
ArrayName
指定数组名。如果数组不存在,Visual FoxPro 将自动创建此数组。如果数组存在,但其大小不足以包含所有信息,则 Visual FoxPro 自动增加数组大小,使得数组能容纳所有信息。如果数组超过了所需大小,Visual FoxPro 将截掉多余部分。如果数组存在,并且 ADIR( ) 函数由于没找到匹配文件而返回 0,则数组保持不变。如果数组不存在,并且 ADIR( ) 函数返回零,则不创建数组。
下表说明了数组中每列的内容及其数据类型:
列 数组内容 数据类型
1 文件名 字符型
2 文件大小 数值型
3 文件最后修改日期 日期型
4 文件最后修改时间 字符型
5 文件属性 字符型
数组的最后一列包含匹配文件的文件属性。每个文件属性值由一个字母表示,一个文件可有多个属性。下表说明每个字母表示的文件属性含义:
字母 属性
A 档案文件 一 可读写
H 隐藏文件
R 只读文件
S 系统文件
D 目录或文件夹
cFileSkeleton
指定文件梗概,以便存储满足搜索条件的文件名或扩展名的文件信息。例如,条件可以是所有表、所有文本文件、所有文件名第一个字母为“A”的文件,等等。这些通配查询在 cFileSkeleton 中可以包含通配符 * 和 ?。其中问号代表单个字符,星号代表任意字符串。在文件梗概中,可在任意位置使用任意个数的通配符。
在 Visual FoxPro、FoxPro for Windows 和 FoxPro for MS-DOS 中,可以指定驱动器和目录名,程序将在此驱动器和目录下搜索匹配文件。如果不指定驱动器和目录名,将把当前目录下的文件信息存入数组中。
在 FoxPro for Macintosh 中,可以搜索匹配文件名的卷和文件夹。如果不指定卷和文件夹,
FoxPro for Macintosh 将当前文件夹中的文件信息存入数组中。
cAttribute
指定在返回内容中包含子目录或嵌套文件夹、隐藏或系统文件、或者卷名。
cAttribute 可以是 D、H 和 S 的任意组合。如果包含 D,除了返回匹配 cFileSkeleton 的文件名外,还将返回当前目录的子目录或当前文件夹的嵌套文件夹。如果包含 H,将返回与 cFileSkeleton 指定相匹配的隐藏文件信息。如果包含 S,将返回与 cFileSkeleton 指定通配文件名相匹配的系统文件信息。
如果 cFileSkeleton 为空字符串,仅返回子目录或嵌套文件夹名、隐藏或系统文件。
cAttribute 参数中包含字符 V,将返回当前驱动器的卷名。如果 V 和 D、H 或 S 一起包含在数组中,则只返回卷名。卷名存入数组的第一个元素中,并截去数组的其余部分。
cCreatorType
仅用于 FoxPro for Macintosh。
用指定的创建程序类型指定文件。如果参数 cFileSkeleton 为空字符串,则仅有匹配指定创建程序类型 cCreatorType 的文件放置到数组中去。如果在参数 cfileSkeleton 中有一个文件梗概,则匹配文件梗概且具有 cCreatorType 指定的创建程序类型的文件被放入数组中。
若要获取 FoxPro for Macintosh 所有的文件扩展名以及相关的创建程序类型,请参阅文件扩展名与文件类型。
返回值类型
数值型
说明
对于每一个文件,ADIR( ) 将文件名、大小、日期、时间和属性信息存入数组。
5 楼
wanguoxin [专家分:0] 发布于 2008-07-20 09:54:00
D盘AFD目录实际有2个文件
?ADIR(MyArray,"AFD\*.*","d")
可是返回数组为0,请高手指教.
6 楼
cbl518 [专家分:57140] 发布于 2008-07-20 10:27:00
希望用评分的方法,对帮助你的老师们地回答,表示你满意程度!
7 楼
cbl518 [专家分:57140] 发布于 2008-07-20 10:32:00
IF DIRECTORY("AFD")
ADIR(MyArray,"AFD\*.*","d")
?MyArray[1,1]
?MyArray[2,1]
ELSE
? "指定的 AFD 路径不存在!"
ENDIF
8 楼
wanguoxin [专家分:0] 发布于 2008-07-20 13:01:00
谢谢cbl518,经过修改:
IF DIRECTORY("D:\AFD")
ADIR(MyArray,"d:\AFD\*","R")
?MyArray[1,1]
?MyArray[2,1]
ELSE
? "指定的 D:\AFD" 路径不存在!"
ENDIF
成功啦!
我来回复