如果读取目录下的所有文件名根据文件名生成数组?
5 个解决方案
#1
gnDbcnumber = ADIR(gadbf,'*.*') && 创建一个数组gadbf
&&显示一下文件名
FOR nCount = 1 TO gnDbcnumber && 遍历所有文件
?gadbf(nCount,1)
ENDFOR
&&显示一下文件名
FOR nCount = 1 TO gnDbcnumber && 遍历所有文件
?gadbf(nCount,1)
ENDFOR
#2
将文件信息存放到数组中,然后返回文件个数。
ADIR(ArrayName [, cFileSkeleton [, cAttribute [, nFlag]]])
参数
ArrayName
指定数组名。如果数组不存在,Visual FoxPro 将自动创建此数组。如果数组存在,但其大小不足以包含所有信息,则 Visual FoxPro 自动增加数组大小,使得数组能容纳所有信息。如果数组超过了所需大小,Visual FoxPro 将截掉多余部分。如果数组存在,并且 ADIR( ) 函数由于没找到匹配文件而返回 0,则数组保持不变。如果数组不存在,并且 ADIR( ) 函数返回零,则不创建数组。下表说明了数组中每列的内容及其数据类型: 列 数组内容 数据类型
1
文件名
字符型
2
文件大小
数值型
3
文件最后修改日期
日期型
4
文件最后修改时间
字符型
5
文件属性
字符型
数组的最后一列包含匹配文件的文件属性。每个文件属性值由一个字母表示,一个文件可有多个属性。下表说明每个字母表示的文件属性含义: 字母 属性
A
档案文件 一 可读写
H
隐藏文件
R
只读文件
S
系统文件
D
目录或文件夹
cFileSkeleton
指定文件梗概,以便存储满足搜索条件的文件名或扩展名的文件信息。例如,条件可以是所有表、所有文本文件、所有文件名第一个字母为“A”的文件,等等。这些通配查询在 cFileSkeleton 中可以包含通配符 * 和 ?。其中问号代表单个字符,星号代表任意字符串。在文件梗概中,可在任意位置使用任意个数的通配符。可以指定驱动器和目录名,程序将在此驱动器和目录下搜索匹配文件。如果不指定驱动器和目录名,将把当前目录下的文件信息存入数组中。
cAttribute
指定在返回内容中包含子目录或嵌套文件夹、隐藏或系统文件、或者卷名。cAttribute 可以是 D、H 和 S 的任意组合。如果包含 D,除了返回匹配 cFileSkeleton 的文件名外,还将返回当前目录的子目录或当前文件夹的嵌套文件夹。如果包含 H,将返回与 cFileSkeleton 指定相匹配的隐藏文件信息。如果包含 S,将返回与 cFileSkeleton 指定通配文件名相匹配的系统文件信息。如果 cFileSkeleton 为空字符串,仅返回子目录或嵌套文件夹名、隐藏或系统文件。cAttribute 参数中包含字符 V,将返回当前驱动器的卷名。如果 V 和 D、H 或 S 一起包含在数组中,则只返回卷名。卷名存入数组的第一个元素中,并截去数组的其余部分。
nFlag
指定是否显示规定的 DOS 文件名或实际区分大小写。 nFlag 说明
0
(默认) 以大写方式显示完整的路径名
1
以原始的大小写方式
2
按 DOS 8+3 命名约定
返回值
Numeric
说明
对于每一个文件,ADIR() 将文件名、大小、日期、时间和属性信息存入数组。
示例
下面的示例使用 ADIR( ) 函数创建一个包含数据库信息的数组,然后显示这些数据库名。
复制代码
CLOSE DATABASES
SET DEFAULT TO (HOME(2) + 'Data')
gnDbcnumber = ADIR(gaDatabase, '*.DBC') && 创建一个数组
CLEAR
FOR nCount = 1 TO gnDbcnumber && 遍历数据库
? gaDatabase(nCount,1) && 显示数据库名
ENDFOR
SET PATH TO HOME( ) && 设置路径到 Visual FoxPro 目录
ADIR(ArrayName [, cFileSkeleton [, cAttribute [, nFlag]]])
参数
ArrayName
指定数组名。如果数组不存在,Visual FoxPro 将自动创建此数组。如果数组存在,但其大小不足以包含所有信息,则 Visual FoxPro 自动增加数组大小,使得数组能容纳所有信息。如果数组超过了所需大小,Visual FoxPro 将截掉多余部分。如果数组存在,并且 ADIR( ) 函数由于没找到匹配文件而返回 0,则数组保持不变。如果数组不存在,并且 ADIR( ) 函数返回零,则不创建数组。下表说明了数组中每列的内容及其数据类型: 列 数组内容 数据类型
1
文件名
字符型
2
文件大小
数值型
3
文件最后修改日期
日期型
4
文件最后修改时间
字符型
5
文件属性
字符型
数组的最后一列包含匹配文件的文件属性。每个文件属性值由一个字母表示,一个文件可有多个属性。下表说明每个字母表示的文件属性含义: 字母 属性
A
档案文件 一 可读写
H
隐藏文件
R
只读文件
S
系统文件
D
目录或文件夹
cFileSkeleton
指定文件梗概,以便存储满足搜索条件的文件名或扩展名的文件信息。例如,条件可以是所有表、所有文本文件、所有文件名第一个字母为“A”的文件,等等。这些通配查询在 cFileSkeleton 中可以包含通配符 * 和 ?。其中问号代表单个字符,星号代表任意字符串。在文件梗概中,可在任意位置使用任意个数的通配符。可以指定驱动器和目录名,程序将在此驱动器和目录下搜索匹配文件。如果不指定驱动器和目录名,将把当前目录下的文件信息存入数组中。
cAttribute
指定在返回内容中包含子目录或嵌套文件夹、隐藏或系统文件、或者卷名。cAttribute 可以是 D、H 和 S 的任意组合。如果包含 D,除了返回匹配 cFileSkeleton 的文件名外,还将返回当前目录的子目录或当前文件夹的嵌套文件夹。如果包含 H,将返回与 cFileSkeleton 指定相匹配的隐藏文件信息。如果包含 S,将返回与 cFileSkeleton 指定通配文件名相匹配的系统文件信息。如果 cFileSkeleton 为空字符串,仅返回子目录或嵌套文件夹名、隐藏或系统文件。cAttribute 参数中包含字符 V,将返回当前驱动器的卷名。如果 V 和 D、H 或 S 一起包含在数组中,则只返回卷名。卷名存入数组的第一个元素中,并截去数组的其余部分。
nFlag
指定是否显示规定的 DOS 文件名或实际区分大小写。 nFlag 说明
0
(默认) 以大写方式显示完整的路径名
1
以原始的大小写方式
2
按 DOS 8+3 命名约定
返回值
Numeric
说明
对于每一个文件,ADIR() 将文件名、大小、日期、时间和属性信息存入数组。
示例
下面的示例使用 ADIR( ) 函数创建一个包含数据库信息的数组,然后显示这些数据库名。
复制代码
CLOSE DATABASES
SET DEFAULT TO (HOME(2) + 'Data')
gnDbcnumber = ADIR(gaDatabase, '*.DBC') && 创建一个数组
CLEAR
FOR nCount = 1 TO gnDbcnumber && 遍历数据库
? gaDatabase(nCount,1) && 显示数据库名
ENDFOR
SET PATH TO HOME( ) && 设置路径到 Visual FoxPro 目录
#3
感谢豆三兄。我知道vfp里应该有这么一个函数,但就是找不出,呵呵。
#4
如果我想取出当前默认目录保存下来,然后设置adir所要检查的目录,设置完毕后再恢复默认目录,该怎么操作?
取当前目录的函数或内存变量是哪一个?
#5
ok,问题解决,获取当前目录函数 sys(2003)
#1
gnDbcnumber = ADIR(gadbf,'*.*') && 创建一个数组gadbf
&&显示一下文件名
FOR nCount = 1 TO gnDbcnumber && 遍历所有文件
?gadbf(nCount,1)
ENDFOR
&&显示一下文件名
FOR nCount = 1 TO gnDbcnumber && 遍历所有文件
?gadbf(nCount,1)
ENDFOR
#2
将文件信息存放到数组中,然后返回文件个数。
ADIR(ArrayName [, cFileSkeleton [, cAttribute [, nFlag]]])
参数
ArrayName
指定数组名。如果数组不存在,Visual FoxPro 将自动创建此数组。如果数组存在,但其大小不足以包含所有信息,则 Visual FoxPro 自动增加数组大小,使得数组能容纳所有信息。如果数组超过了所需大小,Visual FoxPro 将截掉多余部分。如果数组存在,并且 ADIR( ) 函数由于没找到匹配文件而返回 0,则数组保持不变。如果数组不存在,并且 ADIR( ) 函数返回零,则不创建数组。下表说明了数组中每列的内容及其数据类型: 列 数组内容 数据类型
1
文件名
字符型
2
文件大小
数值型
3
文件最后修改日期
日期型
4
文件最后修改时间
字符型
5
文件属性
字符型
数组的最后一列包含匹配文件的文件属性。每个文件属性值由一个字母表示,一个文件可有多个属性。下表说明每个字母表示的文件属性含义: 字母 属性
A
档案文件 一 可读写
H
隐藏文件
R
只读文件
S
系统文件
D
目录或文件夹
cFileSkeleton
指定文件梗概,以便存储满足搜索条件的文件名或扩展名的文件信息。例如,条件可以是所有表、所有文本文件、所有文件名第一个字母为“A”的文件,等等。这些通配查询在 cFileSkeleton 中可以包含通配符 * 和 ?。其中问号代表单个字符,星号代表任意字符串。在文件梗概中,可在任意位置使用任意个数的通配符。可以指定驱动器和目录名,程序将在此驱动器和目录下搜索匹配文件。如果不指定驱动器和目录名,将把当前目录下的文件信息存入数组中。
cAttribute
指定在返回内容中包含子目录或嵌套文件夹、隐藏或系统文件、或者卷名。cAttribute 可以是 D、H 和 S 的任意组合。如果包含 D,除了返回匹配 cFileSkeleton 的文件名外,还将返回当前目录的子目录或当前文件夹的嵌套文件夹。如果包含 H,将返回与 cFileSkeleton 指定相匹配的隐藏文件信息。如果包含 S,将返回与 cFileSkeleton 指定通配文件名相匹配的系统文件信息。如果 cFileSkeleton 为空字符串,仅返回子目录或嵌套文件夹名、隐藏或系统文件。cAttribute 参数中包含字符 V,将返回当前驱动器的卷名。如果 V 和 D、H 或 S 一起包含在数组中,则只返回卷名。卷名存入数组的第一个元素中,并截去数组的其余部分。
nFlag
指定是否显示规定的 DOS 文件名或实际区分大小写。 nFlag 说明
0
(默认) 以大写方式显示完整的路径名
1
以原始的大小写方式
2
按 DOS 8+3 命名约定
返回值
Numeric
说明
对于每一个文件,ADIR() 将文件名、大小、日期、时间和属性信息存入数组。
示例
下面的示例使用 ADIR( ) 函数创建一个包含数据库信息的数组,然后显示这些数据库名。
复制代码
CLOSE DATABASES
SET DEFAULT TO (HOME(2) + 'Data')
gnDbcnumber = ADIR(gaDatabase, '*.DBC') && 创建一个数组
CLEAR
FOR nCount = 1 TO gnDbcnumber && 遍历数据库
? gaDatabase(nCount,1) && 显示数据库名
ENDFOR
SET PATH TO HOME( ) && 设置路径到 Visual FoxPro 目录
ADIR(ArrayName [, cFileSkeleton [, cAttribute [, nFlag]]])
参数
ArrayName
指定数组名。如果数组不存在,Visual FoxPro 将自动创建此数组。如果数组存在,但其大小不足以包含所有信息,则 Visual FoxPro 自动增加数组大小,使得数组能容纳所有信息。如果数组超过了所需大小,Visual FoxPro 将截掉多余部分。如果数组存在,并且 ADIR( ) 函数由于没找到匹配文件而返回 0,则数组保持不变。如果数组不存在,并且 ADIR( ) 函数返回零,则不创建数组。下表说明了数组中每列的内容及其数据类型: 列 数组内容 数据类型
1
文件名
字符型
2
文件大小
数值型
3
文件最后修改日期
日期型
4
文件最后修改时间
字符型
5
文件属性
字符型
数组的最后一列包含匹配文件的文件属性。每个文件属性值由一个字母表示,一个文件可有多个属性。下表说明每个字母表示的文件属性含义: 字母 属性
A
档案文件 一 可读写
H
隐藏文件
R
只读文件
S
系统文件
D
目录或文件夹
cFileSkeleton
指定文件梗概,以便存储满足搜索条件的文件名或扩展名的文件信息。例如,条件可以是所有表、所有文本文件、所有文件名第一个字母为“A”的文件,等等。这些通配查询在 cFileSkeleton 中可以包含通配符 * 和 ?。其中问号代表单个字符,星号代表任意字符串。在文件梗概中,可在任意位置使用任意个数的通配符。可以指定驱动器和目录名,程序将在此驱动器和目录下搜索匹配文件。如果不指定驱动器和目录名,将把当前目录下的文件信息存入数组中。
cAttribute
指定在返回内容中包含子目录或嵌套文件夹、隐藏或系统文件、或者卷名。cAttribute 可以是 D、H 和 S 的任意组合。如果包含 D,除了返回匹配 cFileSkeleton 的文件名外,还将返回当前目录的子目录或当前文件夹的嵌套文件夹。如果包含 H,将返回与 cFileSkeleton 指定相匹配的隐藏文件信息。如果包含 S,将返回与 cFileSkeleton 指定通配文件名相匹配的系统文件信息。如果 cFileSkeleton 为空字符串,仅返回子目录或嵌套文件夹名、隐藏或系统文件。cAttribute 参数中包含字符 V,将返回当前驱动器的卷名。如果 V 和 D、H 或 S 一起包含在数组中,则只返回卷名。卷名存入数组的第一个元素中,并截去数组的其余部分。
nFlag
指定是否显示规定的 DOS 文件名或实际区分大小写。 nFlag 说明
0
(默认) 以大写方式显示完整的路径名
1
以原始的大小写方式
2
按 DOS 8+3 命名约定
返回值
Numeric
说明
对于每一个文件,ADIR() 将文件名、大小、日期、时间和属性信息存入数组。
示例
下面的示例使用 ADIR( ) 函数创建一个包含数据库信息的数组,然后显示这些数据库名。
复制代码
CLOSE DATABASES
SET DEFAULT TO (HOME(2) + 'Data')
gnDbcnumber = ADIR(gaDatabase, '*.DBC') && 创建一个数组
CLEAR
FOR nCount = 1 TO gnDbcnumber && 遍历数据库
? gaDatabase(nCount,1) && 显示数据库名
ENDFOR
SET PATH TO HOME( ) && 设置路径到 Visual FoxPro 目录
#3
感谢豆三兄。我知道vfp里应该有这么一个函数,但就是找不出,呵呵。
#4
如果我想取出当前默认目录保存下来,然后设置adir所要检查的目录,设置完毕后再恢复默认目录,该怎么操作?
取当前目录的函数或内存变量是哪一个?
#5
ok,问题解决,获取当前目录函数 sys(2003)