找回密码
 加入
搜索
查看: 369|回复: 5

Ftp 获取指定文件夹文件list

  [复制链接]
发表于 2023-9-1 09:31:03 | 显示全部楼层 |阅读模式
各位路过的老大指点一下啊,如何获取Ftp直径文件夹下的文件,我用下面的函数,只能获取Ftp下的文件,获取不到子文件夹的文件

Func FTPgetFileList($RemoteFolder)  ;获取文件清单
   $Open = _FTP_Open('MyFTP Control')
   Local $Conn = _FTP_Connect($Open, $FtpServer, $UserName, $Password)
   If @error Then
          MsgBox(0,"","服务器连接失败!")
   Else
;~      $FileList = _FTP_ListToArray($Conn, 2,$RemoteFolder)
     $FileList = _FTP_ListToArray($Conn, 2)
   EndIf
   Local $iFtpc = _FTP_Close($Conn)
   Local $iFtpo = _FTP_Close($Open)
EndFunc
发表于 2023-9-2 15:16:29 | 显示全部楼层
估计大家没看懂你的需求,是需要显示[文件夹+文件],还是仅显示[文件夹],或者仅是显示[文件]?分别使用不同参数即可

_FTP_ListToArray($l_FTPSession [, $Return_Type = 0 [, $l_Flags = 0 [, $l_Context]]])
$Return_type [可选参数] 0 = 获取文件及目录, 1 = 仅获取目录, 2 = 仅获取文件.
 楼主| 发表于 2023-9-9 13:42:41 | 显示全部楼层
不是小灵通 发表于 2023-9-2 15:16
估计大家没看懂你的需求,是需要显示[文件夹+文件],还是仅显示[文件夹],或者仅是显示[文件]?分别使用不 ...

例如,获取ftp://10.1.0.245/文件夹1/文件夹2/文件........  , 我需要获取文件夹2下面的文件 。

目前我用_FTP_ListToArray($l_FTPSession [, $Return_Type = 0 [, $l_Flags = 0 [, $l_Context]]]) ,只能获取到ftp://10.1.0.245/...  路径下的文件,获取不到指定子文件夹里面的文件
发表于 2023-9-10 12:29:16 | 显示全部楼层
获取文件夹下面的文件夹内的内容?我觉得应该是一级级的,不会像dos里面tree命令一样
我给你一个完整版的程序自己琢磨吧,估计是以前下载的人家的,我自己改过,做了一些注释
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <GuiIPAddress.au3>
#include <ListViewConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>

;以上是加载窗体控件所需头文件
#Include <GuiListView.au3>
#include <GuiEdit.au3>
#Include <FTPEx.au3>
#include <Misc.au3>;检查按键是否被按下头文件
#include <Array.au3>
;以上是加载其他头文件
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("FTP_Tools", 786, 485, 219, 255)
$Label1 = GUICtrlCreateLabel("用户名", 13, 32, 45, 20)
$Input1 = GUICtrlCreateInput("test", 64, 28, 97, 24)
$Input2 = GUICtrlCreateInput("111111", 228, 28, 89, 24)
$Label2 = GUICtrlCreateLabel("密码", 173, 31, 45, 20)
$Label3 = GUICtrlCreateLabel("IP", 332, 31, 45, 20)
$IPAddress1 = _GUICtrlIpAddress_Create($Form1,360, 30, 180, 20)
_GUICtrlIpAddress_Set($IPAddress1, "127.0.0.1")
$Label4 = GUICtrlCreateLabel("端口", 550, 31, 45, 20)
$Input3 = GUICtrlCreateInput("21", 590, 27, 65, 24)
$Button1 = GUICtrlCreateButton("连接", 663, 23, 50, 33)
$Button12 = GUICtrlCreateButton("断开", 720, 23, 50, 33)
$Group1 = GUICtrlCreateGroup("信息区域", 16, 168, 753, 281)
$ListView1 = GUICtrlCreateListView("文件路径", 411, 192, 337, 241,-1)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 300)
$Edit1 = GUICtrlCreateEdit("", 40, 192, 230, 252)
GUICtrlSetData(-1, "logo..." & @CRLF)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Label5 = GUICtrlCreateLabel("要下载的路径", 30, 90, 97, 33)
$Label10 = GUICtrlCreateLabel("状态:空闲中...", 15, 453, 550, 25,-1, $WS_EX_CLIENTEDGE)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x0000FF)
$Input4 = GUICtrlCreateInput("www", 126, 85, 521, 24)
$Label6 = GUICtrlCreateLabel("要上传的路径", 30, 130, 97, 33)
$Input5 = GUICtrlCreateInput("", 127, 126, 521, 24)
$Button4 = GUICtrlCreateButton("下载目录", 668, 80, 97, 33)
$Button5 = GUICtrlCreateButton("O(∩_∩)O~)", 668, 120, 97, 33)
$Button6 = GUICtrlCreateButton("进入文件夹", 300, 190, 95, 33)
GUICtrlSetState ( $Button6, $GUI_DISABLE);使按钮暂时不可以使用
$Button7 = GUICtrlCreateButton("退后一步", 300, 233, 97, 33)
GUICtrlSetState ( $Button7, $GUI_DISABLE);使按钮暂时不可以使用
$Button8 = GUICtrlCreateButton("下载文件", 300, 275, 97, 33)
GUICtrlSetState ( $Button8, $GUI_DISABLE);使按钮暂时不可以使用
$Button9 = GUICtrlCreateButton("上传文件", 300, 318, 97, 33)
GUICtrlSetState ( $Button9, $GUI_DISABLE);使按钮暂时不可以使用
$Button10 = GUICtrlCreateButton("删除文件", 300, 360, 97, 33)
GUICtrlSetState ( $Button10, $GUI_DISABLE);使按钮暂时不可以使用
$Button11 = GUICtrlCreateButton("重命名文件", 300, 402, 97, 33)
GUICtrlSetState ( $Button11, $GUI_DISABLE);使按钮暂时不可以使用
$jindu = GUICtrlCreateProgress(570, 455, 200, 20, $PBS_SMOOTH)
GUISetState(@SW_SHOW)
;OnAutoItExitRegister("quit");注册一个程序退出时运行的函数


GUICtrlSetState ( $Button12, $GUI_DISABLE);使断开键暂时不可用直到连接成功或者失败
#EndRegion ### END Koda GUI section ###
;以上创建GUI,创建控件

;下面是主循环
While 1
        $nMsg = GUIGetMsg()
        
        Switch $nMsg
                Case $GUI_EVENT_CLOSE   ;关闭窗口
                        Exit;退出
      
                 
                Case $Button1;按下连接键
                        GUICtrlSetState ( $Button1, $GUI_DISABLE);使连接键暂时不可用直到连接成功或者失败
                        
                        Local $server = _GUICtrlIpAddress_Get($IPAddress1);获取主机地址
                        Local $username = GUICtrlRead ($Input1);获取用户名
                        Local $passwrod = GUICtrlRead ($Input2);获取密码
            Local $prot =         GUICtrlRead ($Input3);获取端口信息
                        ;MsgBox(48,"提示!",$server)
                            
                                If $username = "" Then ;验证用户名
                                        MsgBox(48,"提示!","请输入用户名")
                                        GUICtrlSetState ( $Button1, $GUI_ENABLE);恢复连接按钮状态为可用
                                        ContinueLoop
                                EndIf
;~                                 If $passwrod = "" Then ;验证密码
;~                                         MsgBox(48,"提示!","请输入密码")
;~                                         GUICtrlSetState ( $Button1, $GUI_ENABLE);恢复连接按钮状态为可用
;~                                         ContinueLoop
;~                                 EndIf
                                If $server = "0.0.0.0" Then ;验证IP地址
                                        MsgBox(48,"提示!","请输入一个有效的主机地址")
                                        GUICtrlSetState ( $Button1, $GUI_ENABLE);恢复连接按钮状态为可用
                                        ContinueLoop
                                EndIf
                                GUICtrlSetState ( $Button1, $GUI_DISABLE);使连接键暂时不可用直到连接成功或者失败
               _GUICtrlEdit_AppendText($Edit1, "获取用户信息..." & @CRLF);日志
                                
                            $ftp_open = _FTP_Open("myftp");创建一个FTP会话
                                If $ftp_open = 0 Then;判断创建会话是否成功
                                        _GUICtrlEdit_AppendText($Edit1, "创建一个FTP会话失败" & @CRLF);日志
                                        GUICtrlSetState ( $Button1, $GUI_ENABLE);恢复连接按钮状态为可用
                                    ContinueLoop
                                EndIf;结束判断
                                _GUICtrlEdit_AppendText($Edit1, "打开一个FTP会话..." & @CRLF);日志
                                
                                
                $ftp_connect =_FTP_Connect($ftp_open,$server, $username, $passwrod,$prot);建立一个连接
                                If $ftp_connect = 0 Then;判断连接成功或者失败
                                        _GUICtrlEdit_AppendText($Edit1, "建立一个FTP连接失败" & @CRLF);日志
                                        GUICtrlSetState ( $Button1, $GUI_ENABLE);恢复连接按钮状态为可用
                                    ContinueLoop
                                EndIf;判断结束
                                _GUICtrlEdit_AppendText($Edit1, "建立一个FTP连接..." & @CRLF);日志
                                
                                
                                $liebiao = _Ftp_ListToArray($ftp_connect,0,$INTERNET_FLAG_RESYNCHRONIZE);获取当前远程目录名称和文件名称
                                Local $i;声明局部变量
                                For $i = 1 To $liebiao[0];for 循环开始
                                GUICtrlCreateListViewItem ( $liebiao[$i],$ListView1);将目录列表更新到列表
                             Next;for循环结束
                                _GUICtrlEdit_AppendText($Edit1, "获取远程目录列表并输出到信息栏..." & @CRLF);日志
                                GUICtrlSetState ( $Button12, $GUI_ENABLE);连接动作完成,恢复断开按钮状态为可用
                                GUICtrlSetState ( $Button6, $GUI_ENABLE);使按钮可以使用
                                ;GUICtrlSetState ( $Button7, $GUI_ENABLE);使按钮可以使用
                                GUICtrlSetState ( $Button8, $GUI_ENABLE);使按钮可以使用
                                GUICtrlSetState ( $Button9, $GUI_ENABLE);使按钮可以使用
                                GUICtrlSetState ( $Button10, $GUI_ENABLE);使按钮可以使用
                                GUICtrlSetState ( $Button11, $GUI_ENABLE);使按钮可以使用
                                GUICtrlSetData($Label10,"状态:服务器已连接")
                                
                        Case $Button12;按断开接键
                                $Ftpc = _FTP_Close($ftp_open)
                                _GUICtrlEdit_AppendText($Edit1, "断开之前的连接..." & @CRLF);日志
                                _GUICtrlListView_DeleteAllItems($ListView1)
                                GUICtrlSetState ( $Button12, $GUI_DISABLE);使断开键暂时不可用直到再次连接成功
                                GUICtrlSetState ( $Button1, $GUI_ENABLE);当前断开,恢复连接按钮状态为可用
                                GUICtrlSetState ( $Button6, $GUI_DISABLE);使按钮不可以使用
                                GUICtrlSetState ( $Button7, $GUI_DISABLE);使按钮不可以使用
                                GUICtrlSetState ( $Button8, $GUI_DISABLE);使按钮不可以使用
                                GUICtrlSetState ( $Button9, $GUI_DISABLE);使按钮不可以使用
                                GUICtrlSetState ( $Button10, $GUI_DISABLE);使按钮不可以使用
                                GUICtrlSetState ( $Button11, $GUI_DISABLE);使按钮不可以使用
                                GUICtrlSetData($Label10,"状态:服务器已断开")
                                _EmptyMyScriptMem(@AutoItPID)

                                 
                        Case $Button6;按下进入文件夹
                                 $sis =_GUICtrlListView_GetSelectedCount($ListView1);检查当前被选择的项目数量
                                 If $sis <> 1 Then;判断数量,如果没有选择,则无动作
                                         ContinueLoop
                                 EndIf;结束判断
                     GUICtrlSetState ( $Button7, $GUI_ENABLE);使按钮可以使用
                                 $si = _GUICtrlListView_GetSelectedIndices($ListView1,True);获取当前选择的项目序列号
                                 $DQMLU_Name =_FTP_DirGetCurrent($ftp_connect);记录当前用户所处的目录位置
                                 $FileName = _GUICtrlListView_GetItemText($ListView1,$si[1]);获取当前选择的文件名称
                             _GUICtrlListView_DeleteAllItems($ListView1);删除当前列表项目内容
                                 _FTP_DirSetCurrent($ftp_connect,$FileName);设置目录
                                 $NewlistView = _Ftp_ListToArray($ftp_connect,0,$INTERNET_FLAG_RESYNCHRONIZE);获取该目录内的文件列表
                                 For $ii = 1 To $NewlistView[0];for 循环开始
                                 GUICtrlCreateListViewItem ( $NewlistView[$ii],$ListView1);将新的列表更新到列表
                             Next;for循环结束
                         GUICtrlSetData($Label10,"状态:进入《" & $DQMLU_Name & "/" & $FileName & " 》文件夹")
                            ;$DQMLU_Name2 =_FTP_DirGetCurrent($ftp_connect);记录当前用户进入目录后所处的目录位置

            Case $Button7;按下后退一步按键
                                $DQMLU_Name2 =_FTP_DirGetCurrent($ftp_connect);记录当前用户当前的位置
                                
                                ;If $DQMLU_Name <> $DQMLU_Name2 Then;对比目录路径
                                 ;   _GUICtrlListView_DeleteAllItems($ListView1);删除当前列表项目内容
                                  ;  _FTP_DirSetCurrent($ftp_connect, $DQMLU_Name);设置目录
                                        ;$BacklistView = _Ftp_ListToArray($ftp_connect);获取该目录内的文件列表
                                    ;For $iii = 1 To $BacklistView[0];for 循环开始
                                 ;     GUICtrlCreateListViewItem ( $BacklistView[$iii],$ListView1);将新的列表更新到列表
                              ;  Next;for循环结束
                                ;Else;否则执行下面的程序
                                  Local $str, $strs;声明变量
                                  $str = StringSplit($DQMLU_Name2, "/");将当前目录使用/进行字符串拆分,以便下面进行筛选
                                        For $s = 1 To $str[0]-1;循环开始,不用最后一个目录名称
                       $strs = $strs & "/" & $str[$s];重组新的字符串
                                   Next        ;循环结束
                               $strss = StringTrimLeft ( $strs,1);整理新的字符串,使其生成正确的目录名称样式/test/test/....
                                        If $strss = "" Then;判断路径是否退到根目录
                                                $strss = "/";如果是,则将目录路径设定为/
                                        EndIf;结束判断
                                        _GUICtrlListView_DeleteAllItems($ListView1);删除当前列表项目内容
                                    _FTP_DirSetCurrent($ftp_connect, $strss);设置目录
                                        $BacklistViews = _Ftp_ListToArray($ftp_connect,0,$INTERNET_FLAG_RESYNCHRONIZE);获取该目录内的文件列表
                                    For $iiii = 1 To $BacklistViews[0];for 循环开始
                                      GUICtrlCreateListViewItem ( $BacklistViews[$iiii],$ListView1);将新的列表更新到列表
                                    Next;for循环结束
                                    GUICtrlSetData($Label10,"状态:进入《" & $strs & " 》文件夹")
                                        $strs = "";用完后清除路径变量
                 
                        
                    Case $Button8;按下下载文件按钮
                             $DLS=_GUICtrlListView_GetSelectedCount($ListView1);检查当前被选择的项目数量
                                 If $DLS <> 1 Then;判断数量,如果没有选择,则无动作
                                         MsgBox(48,"提示!","请选择你要下载的文件")
                                         ContinueLoop
                                  EndIf;结束判断
                            $DQ_DQ_FileName =_FTP_DirGetCurrent($ftp_connect);获取当前目录路径
                                $DL_DQ = _GUICtrlListView_GetSelectedIndices($ListView1,True);检索选定项目的索引
                                $DL_DQ_Name = _GUICtrlListView_GetItemText($ListView1,$DL_DQ[1]);获取当前选择的文件名称
                                 GUICtrlSetData($Label10,"状态:为要下载的文件选择储存路径");更新状态
                            $save_L_Name = FileSaveDialog( "选择您要保存的位置.", @DesktopDir & "", "所有文件(*.*)",18,$DL_DQ_Name);显示一个文件保存对话框
                                If @error Then;判断是否选择的有效路径
                                 GUICtrlSetData($Label10,"状态:没有选择一个有效的保存路径,下载任务取消,服务器空闲");状态
                                 ContinueLoop
                                 EndIf;判断结束

                                GUICtrlSetData($Label10,"状态:正在下载文件《" &$DQ_DQ_FileName & "/" & $DL_DQ_Name & "》中,请等待...");状态
                           $Download = _FTP_ProgressDownload($ftp_connect, $save_L_Name, $DQ_DQ_FileName & "/" & $DL_DQ_Name,"_UpdateProgress");下载文件
                          
                          If $Download = 1 Then;判断下载状态
                                  MsgBox(64,"完成","下载完成",2)
                        
                            ElseIf $Download = -1 Then
                                  MsgBox(48,"提示","下载失败,无法创建本地文件")
                          
                            ElseIf $Download = -2 Then
                                  MsgBox(48,"提示","下载失败,不能获取远程文件大小")
                                
                                ElseIf $Download = -3 Then
                                  MsgBox(48,"提示","下载失败,打开远程文件失败")

                ElseIf $Download = -4 Then
                                  MsgBox(48,"提示","下载失败,读取远程文件失败") 
                                  
                            ElseIf $Download = -5 Then
                                  MsgBox(48,"提示","下载失败,关闭远程文件失败")

                                ElseIf $Download = -6 Then
                                  MsgBox(48,"提示","下载失败,被调用函数返回的百分比下载失败")
                                
                                ElseIf $Download = -7 Then
                                  MsgBox(48,"提示","下载失败,本地文件写入失败")
                                  
                            EndIf;判断结束
                            GUICtrlSetData($Label10,"状态:文件下载完成,服务器空闲");更新状态
                                GUICtrlSetData($jindu,0);清理进度
                                
                        Case $Button9;按下上传文件按钮
                                $DQMLU_Name3 =_FTP_DirGetCurrent($ftp_connect);获取当前目录路径
                                GUICtrlSetData($Label10,"状态:选择要上传的文件路径");更新状态
                                $Select_File =FileOpenDialog ( "请选择需要上传的文件", @DesktopDir & "", "所有文件(*.*)"  );显示一个文件上传对话框
                                If @error Then;判断选择路径
                                        GUICtrlSetData($Label10,"状态:没有选择一个有效的路径,任务取消,服务器空闲")
                                        ContinueLoop
                                EndIf;结束判断
                                $Upload_FileName = _getfilename( $Select_File)
                                GUICtrlSetData($Label10,"状态:正在上传文件《" & $Select_File & " 》  请稍后")
                                $Upload = _FTP_ProgressUpload($ftp_connect, $Select_File,$DQMLU_Name3 & "/" &  $Upload_FileName, "_UpdateProgress");开始上传
                                If $Upload = 1 Then;判断上传结果并给出提示
                                        MsgBox(64,"提示","文件上传成功",2)
                                        
                                ElseIf  $Upload = -3 Then
                                        MsgBox(48,"提示","创建文件失败")
                                
                                ElseIf  $Upload = -4 Then
                                        MsgBox(48,"提示","写文件失败 ")
                                
                                ElseIf  $Upload = -5 Then
                                        MsgBox(48,"提示","关闭文件失败")
                                
                                ElseIf  $Upload = -6 Then
                                        MsgBox(48,"提示","被调用函数返回的百分比下载失败 ")                                

                EndIf ;判断结束   
                                
                                 $DQMLU_Name10 =_FTP_DirGetCurrent($ftp_connect);记录当前用户所处的目录位置
                             _GUICtrlListView_DeleteAllItems($ListView1);删除当前列表项目内容
                                 _FTP_DirSetCurrent($ftp_connect, $DQMLU_Name10);设置目录
                                 $NewlistView10 = _Ftp_ListToArray($ftp_connect,0,$INTERNET_FLAG_RESYNCHRONIZE);获取该目录内的文件列表
                                 For $ii10 = 1 To $NewlistView10[0];for 循环开始
                                 GUICtrlCreateListViewItem ( $NewlistView10[$ii10],$ListView1);将新的列表更新到列表
                             Next;for循环结束
                                 GUICtrlSetData($jindu,0);清理进度条
                                GUICtrlSetData($Label10,"状态:文件上传完成,服务器空闲");更新状态


           Case $Button10;按下删除文件
                             $DLS4=_GUICtrlListView_GetSelectedCount($ListView1);检查当前被选择的项目数量
                                 If $DLS4 <> 1 Then;判断数量,如果没有选择,则无动作
                                         MsgBox(48,"提示!","请选择中您要删除的文件")
                                         ContinueLoop
                                  EndIf;结束判断
                           $DQMLU_Name4=_FTP_DirGetCurrent($ftp_connect);获取当前目录路径
                           $DL_DQ4 = _GUICtrlListView_GetSelectedIndices($ListView1,True);检索选定项目的索引
                           $DL_DQ_Name4 = _GUICtrlListView_GetItemText($ListView1,$DL_DQ4[1]);获取当前选择的文件名称
                           $delete_File =_FTP_FileDelete($ftp_connect,  $DQMLU_Name4 & "/" & $DL_DQ_Name4);
                           If $delete_File = 0 Then
                                   MsgBox(48,"提示!","删除远程服务器文件失败,重试")
                                    GUICtrlSetData($Label10,"状态:删除《" & $DQMLU_Name4 & "/" & $DL_DQ_Name4 & "》失败");更新状态
                           Else
                                   MsgBox(64,"提示","删除文件成功")
                                   GUICtrlSetData($Label10,"状态:删除《" & $DQMLU_Name4 & "/" & $DL_DQ_Name4 & "》成功");更新状态
                           EndIf
                           
                           
                                 $DQMLU_Name100 =_FTP_DirGetCurrent($ftp_connect);记录当前用户所处的目录位置
                             _GUICtrlListView_DeleteAllItems($ListView1);删除当前列表项目内容
                                 _FTP_DirSetCurrent($ftp_connect, $DQMLU_Name100);设置目录
                                 $NewlistView100 = _Ftp_ListToArray($ftp_connect,0,$INTERNET_FLAG_RESYNCHRONIZE);获取该目录内的文件列表
                                 For $ii100 = 1 To $NewlistView100[0];for 循环开始
                                 GUICtrlCreateListViewItem ( $NewlistView100[$ii100],$ListView1);将新的列表更新到列表
                             Next;for循环结束
                          
                          
                          
                          
                  Case $Button11;重命名文件                          
                          $DLS5=_GUICtrlListView_GetSelectedCount($ListView1);检查当前被选择的项目数量
                                 If $DLS5 <> 1 Then;判断数量,如果没有选择,则无动作
                                         MsgBox(48,"提示!","请选择中要重命名的文件")
                                         ContinueLoop
                                  EndIf;结束判断
                                 
                           $DQMLU_Name5=_FTP_DirGetCurrent($ftp_connect);获取当前目录路径
                           $DL_DQ5 = _GUICtrlListView_GetSelectedIndices($ListView1,True);检索选定项目的索引
                           $DL_DQ_Name5 = _GUICtrlListView_GetItemText($ListView1,$DL_DQ5[1]);获取当前选择的文件名称
                           $New_File_Names = InputBox("重命名", "输入新的名称,包含后缀名", "", "",280,140)
                           If @error Then
                                   ContinueLoop
                           EndIf
                           $Rname =  _FTP_FileRename($ftp_connect,  $DQMLU_Name5 & "/" & $DL_DQ_Name5, $New_File_Names)
                           If @error Then
                                  MsgBox(48,"提示","重命名失败")
                           Else
                                  MsgBox(64,"提示","重命名成功")
                           EndIf
                           $DQMLU_Name100s =_FTP_DirGetCurrent($ftp_connect);记录当前用户所处的目录位置
                             _GUICtrlListView_DeleteAllItems($ListView1);删除当前列表项目内容
                                 _FTP_DirSetCurrent($ftp_connect, $DQMLU_Name100s);设置目录
                                 $NewlistView100s = _Ftp_ListToArray($ftp_connect,0,$INTERNET_FLAG_RESYNCHRONIZE);获取该目录内的文件列表
                                 For $ii100s = 1 To $NewlistView100s[0];for 循环开始
                                 GUICtrlCreateListViewItem ( $NewlistView100s[$ii100s],$ListView1);将新的列表更新到列表
                             Next;for循环结束
                
              Case $Button4;按下下载目录
                



        EndSwitch
WEnd


Func _UpdateProgress($Prozent)
    GUICtrlSetData($jindu,$Prozent)
    If _IsPressed("77") Then Return 0 ; Abbruch bei F8
    Return 1 ; bei 1 Fortsetzen
EndFunc 
Func _getfilename($spath, $sflag = 0)
        If $sflag = 0 Then
                $sflag = 0
        Else
                $sflag = 1
        EndIf
        If $sflag = 0 Then
                $sFileName = StringRegExpReplace($spath, '.+\\', '')
        Else
                $sFileName = StringRegExpReplace($spath, '.+\\', '')
                $sFileName = StringRegExpReplace($sFileName, '\.[^\.]*$', '')
        EndIf
        Return ($sFileName)
EndFunc

;Func quit()
;        _FTP_Close($ftp_open)
;EndFunc

Func _EmptyMyScriptMem($PID)
        Local $ai_Handle = DllCall("kernel32.dll", 'int', 'OpenProcess', 'int', 0x1f0fff, 'int', False, 'int', $PID)
        Local $ai_Return = DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'long', $ai_Handle[0])
        DllCall("kernel32.dll" , 'int', 'CloseHandle', 'int', $ai_Handle[0])
EndFunc
$List=ProcessList()
For $x=1 to $List[0][0]
        _EmptyMyScriptMem($List[$x][1])
Next
发表于 2023-9-10 12:43:04 | 显示全部楼层
本帖最后由 不是小灵通 于 2023-9-10 12:47 编辑

另外如果只是读取本地文件夹,3行代码解决问题。搜索出来的结果,保存在你当前文件夹的file.txt中。
FTP的不知道能否借鉴
$DirPath = @ScriptDir 
$SaveFile = @ScriptDir & "\file.txt" 
RunWait(@ComSpec & " /c DIR /B /S /A:-D " & $DirPath & " > " & $SaveFile, "", @SW_HIDE)
 楼主| 发表于 2023-9-16 17:13:33 | 显示全部楼层
还是非常感谢兄台 ~ 我需求的是FTP子目录里面的文件,不是一级目录下的文件。 本地文件夹搜索文件没问题
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-4 18:44 , Processed in 0.078877 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表