网络开发 调用API函数 报表打印 常用技术 经验汇总 控件使用 软件工程 数据处理
您的位置:首页 >> vfp教程 >> 网上文摘 >> 经验汇总 >> 正文

在VFP中如何历遍所有文件夹和文件
出处:网络

  在VFP中,能象一些杀毒软件那样,找遍磁盘的所有文件夹和文件吗?
答案是肯定的,而且很简单:
*利用VFP的Create Cursor -SQL命令建立有5个字段的临时库
*结合前面提到的ADIR()函数便可完成。
下面是具体代码:
dqml='C:' &&需扫描的盘符
use
Create Cursor mylsdbf (wjmc c(120),wjcd n(10),wjrq d,wjshj c(10),wjsx c(6))
xGS=1
xCD=0
append BLANK
REPL wjmc WITH dqml
do while !eof()
  nRecn=Recn()
  dqml=allt(wjmc)+'\'
  x=adir(Mysz,(dqml+'*.*'),'rashd')
  if x<>0
    for I=3 to x
     Mysz(I,1)=dqml+Mysz(I,1)
     xGS=xGS+1
     xCD=xCD+Mysz(I,2)
    endf
    append from array Mysz for allt(wjmc)<>'.' AND allt(wjmc)<>'..' and 'D'$wjsx
  endi
  go nRecn
  skip
endd
use
在VFP如何利用低级文件操作函数读取*.INI文件

  VFP为我们提供了16个低级文件操作函数,充分利用这些函数,几乎可对所有文件进行本来只有汇编、C等语言才能进行的操作。
  *.INI文件其实也是ASCII码文本文件,只不过有其特定的规律而已。
  下面以读取system.INI中[boot.description]关键字里的mouse.drv标识符中的值为例来说明:

nPath_ls=fullpath('command.com',2)
nPath=strtran(nPath_ls,'COMMAND.COM','system\')     &&取得Windows\system\的目录名
dkwjm=nPath+'system.ini'                  &&需打开文件的路径和文件名
Fp=Foren(dkwjm,0)                      &&以只读(默认方式0可以不用)打开文件
if Fp<0
 wait wind '打不开您指定的文件'
 retu
endi
do while !Feof(Fp)
  wjnr=Fgets(Fp)         &&从打开的文件中读取一行
  if atc('mouse.drv',wjnr)=1
   exit
  endi
endd
=Fclose(Fp)              &&关闭打开的文件
x=atc('=',wjnr)
nQdz=iif(x>1,suns(wjnr,x+1),'')   &&nQdz='标准鼠标'字符串
retu
我只不过是说明如何运用VFP提供的这些函数,至于如何建立和改写文件,为何用Fgets()来读取数据而不用Fread()来读取数据等,可以查阅VFP帮助。VFP3.0的帮助是一本很好的中文教科书。
如何改变文件的最后修改日期和时间
   在WINDOW 9X下我们没办法来改变一个文件的日期和时间,那在VFP能办到吗?
   在WINDOW 9X下文件的日期和时间有创建、修改和访问三种,在通常情况下我们所说的文件日期和时间指的是修改这一项。
   那在VFP下如何改文件日期和时间呢:
Fp=Foren('需打开的文件',2)          &&以读写方式打开文件
if Fp<0
  wait wind '打不开您指定的文件'
  retu
endi
wjnr=Fread(fp,1)               &&从打开的文件头中读一个字节到wjnr
=Fseek(Fp,0,0)                &&将文件指针移到文件头(回到原来的位置)
=Fwrite(Fp,wjnr,1)              &&向打开的文件头中写入一个字节
=Fclose(Fp)                  &&关闭打开的文件
即把读取的那个字节原封不动的再写入文件,从而达到了将当前系统
的日期和时间来改写文件的日期和时间目的。

  我所写出的代码可能不是最合理和最精练的,只是提出一种思路或方法
供大家参考,希望能对您有所帮助。
                    江苏 常州 老王 99.09.07
                      E-mail:cfyns@163.net

[返回]

     

首页 | 设为首页 | 加入收藏 | 关于本站 | 友情链接 | 版权声明

     
 
Copyright© www.bianceng.cn Powered by 编程入门网 All Rights Reserved
吉ICP备06005558号