主题:跪地求助:在qb中如何搜索文件?
gczxhzb
[专家分:0] 发布于 2005-05-18 15:51:00
我想问的是:
在qb中如何在所有硬盘分区搜索某个文件,并获得这个文件的完整路径?
就像在dos中的如下命令:
set disk=c:,d:,e:,f:,g:
for %i in (%disk%) do dir %i\readme.txt /s /b
回复列表 (共11个回复)
沙发
moz [专家分:37620] 发布于 2005-05-18 17:01:00
如果可以撇开文件名长短的问题的话并不难
用chdir和dir$还有chdrive就可以了
还可以用shell “dir /s>某个文件”
板凳
gczxhzb [专家分:0] 发布于 2005-05-18 20:22:00
谢了!
shell方法我知道.
用dir$函数、chdir和chdrive语句搜索文件,我之前试了,但思路不清,还真做不来。
能不能写个例程,具体说说?
3 楼
moz [专家分:37620] 发布于 2005-05-18 23:33:00
老实说吧,最好还是找老大弄点中断的东西来搞一搞。
可惜在XP不可以直接访问硬盘的信息。
QB不支持长文件名,很麻烦的,我还不知道该怎样转换呢。
而且QB好像没有获得路径的语句
4 楼
gczxhzb [专家分:0] 发布于 2005-05-19 12:48:00
moz:
虽然问题不能解决,但我还是要谢谢你的!
我是刚来的,啥也不懂,还望多多关照!
5 楼
def [专家分:3380] 发布于 2005-05-20 19:49:00
还有
files
open
on error
close
6 楼
xyaxw [专家分:40] 发布于 2005-05-21 16:44:00
调用INT21也可以
7 楼
gczxhzb [专家分:0] 发布于 2005-05-21 22:54:00
[fly]def是什么人,怎么老是发这样的滥帖![/fly][em24]
8 楼
qb45 [专家分:2880] 发布于 2005-05-23 17:11:00
男儿膝下有黄金,别让人看不起!
9 楼
gczxhzb [专家分:0] 发布于 2005-05-25 22:00:00
搜索文件的代码我自己写好了,用了SHELL语句,红色的部分可不要.
ON ERROR GOTO Getpath
INPUT "请输入要搜索的文件名:",fname$
[color=FF0000]'temp1$ = "c:\temp\temp1.txt"[/color]
FOR i = 67 TO 90
disk$ = CHR$(i) + ":\"
temp2$ = CHR$(i) + ":\temp2.txt"
OPEN temp2$ FOR OUTPUT AS #1
PRINT #1, temp2$
CLOSE #1
KILL temp2$
sfile$ = "dir " + disk$ + fname$ + " /s /b /a>>"[color=FF0000] + temp1$[/color]
SHELL sfile$
NEXT i
Getpath:
,以下红色部分把搜索结果赋值给动态数组gpath$的各个元素,可不要。
[color=FF0000]'fline% = 0[/color]
[color=FF0000]'OPEN temp1$ FOR INPUT AS #1[/color]
[color=FF0000]'DO WHILE NOT EOF(1)[/color]
[color=FF0000]' INPUT #1, tempx$[/color]
[color=FF0000]' fline% = fline% + 1[/color]
[color=FF0000]'LOOP[/color]
[color=FF0000]'CLOSE #1[/color]
[color=FF0000]'IF fline% < 1 THEN[/color]
[color=FF0000]' PRINT "在所有分区都找不到指定的文件!"[/color]
[color=FF0000]' END[/color]
[color=FF0000]'ELSE[/color]
[color=FF0000]' REDIM gpath$(1 TO fline%)[/color]
[color=FF0000]' OPEN temp1$ FOR INPUT AS #1[/color]
[color=FF0000]' FOR i = 1 TO fline%[/color]
[color=FF0000]' LINE INPUT #1, gpath$(i)[/color]
[color=FF0000]' PRINT gpath(i)[/color]
[color=FF0000]' NEXT i[/color]
[color=FF0000]' CLOSE #1[/color]
[color=FF0000]' KILL temp1$[/color]
[color=FF0000]'END IF[/color]
END
10 楼
moz [专家分:37620] 发布于 2005-05-25 23:39:00
一塌糊涂,
你运行过吗?
你连管道定重向都没弄好,
何来新文件?
你连dir格式都没看过,
就这样就算是"写好了"?
我在你的主题:
"qb中如何使生成的EXE文件支持长文件名?"
那里有写过怎样做的: http://www.programfan.com/club/showbbs.asp?id=77938
虽然做得不好,但起码也是一个思路,
你可以根据实际应用情况作修改的,但怎么改都不会改成上面那个样子.
我来回复