Delphi - TIdFTP 两个重要函数

TIdFTP 两个重要函数

项目开发过程中发现,直接对于服务器上的文件/路径进行处理,是很危险的事情,因为一旦文件/路径不存在,程序就会抛异常,影响客户体验。所以在对服务器上的文件/路径进行访问之前,我们一般先判断服务器上是否存在某个路径/文件,然后再进行进一步的处理。

判断服务器上文件或者路径是否存在 FtpDirectoryExists

请看如下代码:

 1 function TMainFrm.FtpDirectoryExists(ADir: string): Boolean;
 2 var
 3   i, Index: Integer;
 4   strlist: TStringList;
 5   filename: string;
 6   b: Boolean;
 7 begin
 8   Result := false;
 9   Index := 0;
10   strlist := TStringList.Create;
11   strlist.Clear;
12   idFTP.List(strlist, ‘‘, True);
13   if strlist.Count > 0 then
14   begin
15     for i := 0 to strlist.Count - 1 do
16     begin
17       filename := trim(strlist.Strings[i]);
18       b := True;
19       while b do
20       begin
21         if Pos( , filename) > 0 then
22         begin
23           filename := Trim(Copy(filename, Pos( , filename), Length(filename)));
24         end;
25         if Pos( , filename) = 0 then b := False;
26       end;
27       if filename = ADir then
28       begin
29         Result := true;
30         Break;
31       end;
32     end;
33   end;
34   strlist.Free;
35 end;

创建FTP路径/文件夹 CreateFtpDir

请看如下代码:

 1 procedure TMainFrm.CreateFtpDir(V_Path: string);
 2 var
 3   i, j, k: Integer;
 4   sFtpPath, s: tstringlist;
 5   t_Path, sSTR: string;
 6 begin
 7   sFtpPath := tstringlist.Create;
 8   sFtpPath.Clear;
 9   sFtpPath.Delimiter := /;
10   sFtpPath.DelimitedText := V_Path;
11   idFTP.ChangeDir(/);
12     //检查目录是否存在,不存在时自动创建
13   for K := 0 to sFtpPath.Count - 1 do
14   begin
15     sSTR := sFtpPath[k];
16     try
17       if not FtpDirectoryExists(sSTR) then
18         idFTP.MakeDir(sSTR);
19     except
20       on E: Exception do
21       begin
22         null;
23       end;
24     end;
25     idFTP.ChangeDir(sSTR + /);
26   end;
27   sFtpPath.Free;
28 end;

 

Delphi - TIdFTP 两个重要函数

上一篇:浪潮服务器NF84260M3安装Windows server 2012 R2


下一篇:ES之一:Elasticsearch6.4 windows安装 head插件ik分词插件安装