倾家荡产200分,如何列举ftp下所有文件目录,并输入数据库(access) (200分)

  • 主题发起人 主题发起人 hyne
  • 开始时间 开始时间
跟遍历本地目录是一样道理的,只不过多一点字符串的判断而已,比如说判断一个
项是不是目录可以看他的属性
 
[red][h1]我的FTP 不穩定是什么原因,是不是哪個屬性要如何設置???[/h1][/red][:(]
 
step 1:DELPHI DEMO FTP
step 2:ADO-->MDB
在NMFTP的listitem(记不清抱歉)事件加SQL(INSERT.....)
 
如果稳定就不叫ftp了。开个玩笑。
好像听说delphi自带的ftp控件是不太好,好多人用第三方控件的,
名字我忘了。
 
小猪的话不无道理。
我刚做过一段关于ftp得,说说方法,请大家多多指导。
说明:1不用递归事也行的,就是太笨。
2我用的ftp是delphi自带的,完全可以实现,如果用地三方的控件可能会省点事。
//ListItem事件
procedure TForm1.NMFTP1ListItem(Listing: String);
begin
found:=false;
if diris(listing) then
{diris是公用函数,监测listing中是否有'<DIR>'字符,有返回真}
begin
Memo1.Lines.Add(memo1.lines[j]+nameis(listing)+'/');{nameis是返回最后一位空格到字符尾的字符串}
found:=true;
end;
end;
//主程序,memo1开始是空的。
while found do
begin
i:=memo1.Lines.Count
for j:=i to memo1.Lines.Count do
if memo1.Lines[j]<>'' then
begin
NMFTP1.ChangeDir(memo1.Lines[j]);
nmftp1.lise;
end;
end;
然后将memo1的内容写入数据库即可。

程序我没调,不过想来问题不大。其实听小猪的话看例程完全可以自己解决,浪费分数开不值当。


 
TO hyne:
找本算法的书看看吧[:D]
 
看来大家回复得差不多了。t1122的办法不错,会去试试。
如果成功我会给出源代码。
哪位高手也给点指导啊
最好省得我再写了。
多谢li2的建议。
 
如果用NMFtp的话,在List的时候基本上总是会出现问题,不能得到文件列表,而且导致程序无法关闭,
在服务器端则会看到其没有响应了。以前我就被它给害死了,居然用它做商业软件,后来全部重写,用了
ICS的FtpClient,Indy中也有FTP的控件,都很好用,而且有源码和例子,可惜ICS没有帮助。
至于递归如果不清楚的话,建议找本书看一下就什么都清楚了。
还有,象这样列举所有目录中的文件的效率是很低的,要反复ChangeDir,如果网络速度不够快的话就够你
受的了,一般来说应该尽量只是取得所需要的目录下文件,除非你有特殊需要。[:)]
 
的确NMFTP不好,我是再也不用它了,上个月害得我三个通宵改程序。
用D6的IdFTP吧,自带的例子有用。IdFTP.List(ListBox1,'*.*,true);会返回当前目录下的
文件及子目录。递归算法你找书看一下吧。
 
我也想NMFTP换成其他控件,因为的NMFTP老是出问题,我用的是BCB5 不知要用哪个
FTP 控件 ,IdFTP好像不能在BCB5.0上用 能出一下主意吗
 
to 教父:
NMFTP不好吗,能谈谈吗?我用过一段时间,可能使用的少,没发现。
ChangeDir的效率的却很低,很笨的方法,NMFTP好像没有什么好办法。其实ICS不错。
 
ICS 我的BCB5.0装不上啊
 
递归不好控制,因为有时会设置公用目录,也就是说每进入一个目录,都会显示这个目录。
还有一些如‘.’ ‘..’的目录,必须处理
还有那些每个目录都有返回根目录的目录,递归时也容易陷入死循环。
另外对于‘.lnk’的目录处理也容易出问题。
要求递归时要对相对路径检查,否则完蛋。

源码,就不提供了,提供以上思路。
控件:ics.indy都不错,ics在传输>10M的文件时,有时不太稳定.
 
to 教父:
ICS 到哪里可下载?
 
http://www.rtfm.be/fpiette
 
如果远程系统是solaris 8,问题可就多了。
 
问题结束
人比较多,只能大家平分平坟啦
 

Similar threads

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