windows 低层开发的高手进来,这个问题如何解决?(50分)

  • 主题发起人 主题发起人 fzhang1976
  • 开始时间 开始时间
F

fzhang1976

Unregistered / Unconfirmed
GUEST, unregistred user!
在 Dos 下有Tree命令来导出文件结构树到文本文件,eg:<br>&nbsp; &nbsp;tree /f c:/ &gt; C:/1.txt<br>(把c盘根目录下的所有文件及目录以树的形式导入到文件)<br>请问delphi下如何实现?如何调用windows下的dos,并写入命令,达到以上功能。<br>不要用delphi的shelltreeview1等控件。执行效率太低了。<br>请高手相助。分不多,请帮帮忙!
 
winexec('tree /f c:/ &gt; C:/1.txt',sw_hide);
 
不行,偶早就试过了,dos下好象不认"&gt;"的重定向符!
 
怎么办?
 
虽然分不多,但我是很真诚的!望各位高手能帮帮忙!
 
dir *.* &gt;a.txt<br>我试了一下(2000下)是可以的
 
但用delphi编程如何实现能?我对windows编程不熟悉啊,偶是菜鸟~
 
我用的这种方法实现,但效率太底了,一个40G(已用30G 4个分区)的硬盘要执行N分钟,让人无法忍受啊,难道没有别的方法了吗?<br>procedure TForm1.Button2Click(Sender: TObject);<br>begin<br>&nbsp; &nbsp; shelltreeview1.FullExpand ;<br>&nbsp; &nbsp; if savedialog1.Execute &nbsp;then<br>&nbsp; &nbsp; begin<br>&nbsp; &nbsp; &nbsp; &nbsp;shelltreeview1.SaveToFile(savedialog1.FileName );<br>&nbsp; &nbsp; &nbsp; &nbsp;memo1.Lines.LoadFromFile(savedialog1.filename);<br>&nbsp; // &nbsp; &nbsp; label2.Caption :=savedialog1.FileName ;<br>&nbsp; &nbsp; end;<br><br>end;
 
winexec('command.exe tree /f c:/ &gt; C:/1.txt',sw_hide); &nbsp;<br>即可
 
楼上的有没有在delphi环境下测试过啊,我试过是不行的。
 
不认?我试过了是可以的呀!请看:<br>C:/<br>│ &nbsp;AUTOEXEC.BAT<br>│ &nbsp;CONFIG.SYS<br>│ &nbsp;<br>├─C<br>│ &nbsp; &nbsp; &nbsp;C.txt<br>│ &nbsp; &nbsp; &nbsp;s.txt<br>│ &nbsp; &nbsp; &nbsp;<br>├─DOWNLOADS<br>│ &nbsp;│ &nbsp;biwu.wmv<br>│ &nbsp;│ &nbsp;chuangyi_iconstory.swf
 
请问楼上用的dos 是哪个版本的?我在win2000下只能用cmd调出控制台,后面的参数不认啊!
 
确实不认,我是2000,在delphi下用没动静:(<br>导出所有的树当然慢了,就算你用dos来做这事也快不起来<br>不用说还有<br>memo1.Lines.LoadFromFile(savedialog1.filename);<br>装载的过程
 
谢谢!但是在cmd模式下要快许多啊!现在的问题是如何在delphi下调用cmd并传入参数?
 
用的是 XP
 
有高手可以回答吗?
 
E:/Inetpub&gt;tree /f<br>文件夹 PATH 列表<br>卷序列号码为 71F2E346 90F2:75D8<br>E:.<br>├─AdminScripts<br>│ &nbsp; &nbsp; &nbsp;adsutil.vbs<br>│ &nbsp; &nbsp; &nbsp;synciwam.vbs<br>│<br>└─wwwroot<br>&nbsp; &nbsp; │ &nbsp;iisstart.htm<br>&nbsp; &nbsp; │ &nbsp;pagerror.gif<br>&nbsp; &nbsp; │<br>&nbsp; &nbsp; └─aspnet_client<br>&nbsp; &nbsp; &nbsp; &nbsp; └─system_web<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; └─1_1_4322<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SmartNav.htm<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SmartNav.js<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; WebUIValidation.js<br>
 
建立一个批处理文件TEST.BAT,里面内容为:<br>tree /f c:/ &gt; C:/1.txt<br><br>然后使用createprocess函数调用测试一下。
 
2000/xp 下应该用 winexec('cmd.exe tree /f c:/ &gt; C:/1.txt',sw_hide); &nbsp;<br>98是command.exe.
 
哎,你们都做的不对,还是俺自个搞定了。
 

Similar threads

D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部