回 帖 发 新 帖 刷新版面

主题:怎样执行WINDOWS下对我的电脑的搜索命令,并将搜索结果保存起来???

在VFP下希望:

1.执行WINDOWS下对我的电脑的搜索命令;

2.将搜索结果保存VFP的数据表中起来;

3.若有直接对我的电脑搜索的VFP命令则更好。

                     请赐教
                   谢谢!!!

回复列表 (共7个回复)

沙发

已在《怎样查找非当前目录下的文件所在位置??? 》回答了你的问题,希望同样的问题不要重复发帖,把它顶起来就可以了。

板凳

重复发帖当然不对,不过1楼的方法功能确实比不上windows自带的功能强大或者说没有解决问题

3 楼

烦请楼上的朋友发布一个堪比windows自带的功能强大的程序,以解决实际问题。在下学习了。

4 楼

sywzs已经对楼主提出的问题在另一贴中进行了回复,回帖代码看得出是下了一定的功夫的。
如果回帖没有解决问题,应诚恳回帖说明,即便没给分也表明了对于帮助者的尊重,使帮助者知道自己代码的欠缺,改进自己的代码。
尊重别人劳动,就会得到更多的帮助。

5 楼

[quote]烦请楼上的朋友发布一个堪比windows自带的功能强大的程序,以解决实际问题。在下学习了。
[/quote]
本人水平有限,确实没有“堪比windows自带的功能强大的程序”。
以前也没有想过这个问题,是看到楼主的问题后才想到能否调用“windows自带的搜索程序”(我理解这才是楼主的本意),另外SQL SERVER好象也可以全文检索,当然查找的结果是调用简单,返回查找结果到自己程序中很难。

6 楼

这个问题嘛,嗯,其实灰长灰长不难。
FOX那么多丰富的函数,自己采用一点算法,就出来了。比如ADIR()函数就很好。一楼sywzs朋友用了多重循环,其实就是深度遍历一颗目录树。当然缺陷是有的,比如“深达6层子目录”,再往下就得改程序,那无非是增加循环嵌套的层数。这种算法(非递归遍历)倒不如递归遍历好。

有朋友可能说:那你给我写一个递归遍历的看看。
呵呵,抱歉,我懒得写。网上一大把。

FOX几乎被前人玩透了,现成的东西很多,拿来用用就行。比如找文件这种常见的任务,fox本身就提供了。下面俺用fox基本类_filer写个小程序,看看这任务有多简单:

oFileSearch=NEWOBJECT("_Filer",HOME(1)+"FFC\_utility.vcx") 
WITH oFileSearch
  .cSearchPath="D:"  &&要搜索的路径,这里让它在D盘搜去吧
  .cFileExpression="*AB*.txt" &&要搜索的文件名通配符,这里是文件名有AB的全部txt文件
  .Find  &&启动搜索
ENDWITH

TRY 
  nFiles=oFileSearch.ofiles.count  &&找到的文件数目
CATCH
  nFiles=0   &&万一没找到
ENDTRY

FOR i=1 TO nFiles  &&循环打印路径和文件名
  ?oFileSearch.oFiles.Item(i).Path
  ??oFileSearch.oFiles.Item(i).Name
ENDFOR

注意:磁盘文件很多的情况下,这程序可能要等待一会。不过想想WINDOWS下的搜索,不也需要一点时间吗!
至于怎么将搜索结果保存VFP的数据表,应该很简单吧!

7 楼

感谢以上各位帮助,6楼朋友的方法简直是太好了.

我来回复

您尚未登录,请登录后再回复。点此登录或注册