以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  怎样判断一个路径是文件还是文件夹  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=188272)

--  作者:lianghanyu
--  发布时间:2023/9/11 14:50:00
--  怎样判断一个路径是文件还是文件夹
用GetDetailist  返回的是所有文件和文件夹的名字,   那么, 我应该怎么样判断这些返回的字符串中,哪些是属于文件,哪些是属于文件夹呢?



--  作者:有点蓝
--  发布时间:2023/9/11 15:20:00
--  
目录没有修改时间和大小
[此贴子已经被作者于2023/9/11 20:59:32编辑过]

--  作者:lianghanyu
--  发布时间:2023/9/11 20:56:00
--  
好的,注意到这个细节了。

但是又遇到困难了,我原本是想把一个文件夹下所有的文件登记入我的表格。  但是我用for语句,  不会计算下一级。如果文件夹下边有很多子文件夹?我该怎么样对子文件 夹一,一 遍历呢?

我这以下这个代码,只能遍历一次啊,如果有很多的子文件夹,要怎么办?

Dim ftp As New FTPClient
Dim ip As String = Tables("网络设置").Current("地址")
Dim ac As String = Tables("网络设置").Current("帐号")
Dim pa As String = Tables("网络设置").Current("密码")
Dim po As String = Tables("网络设置").Current("端口")
ftp.Host = ip
ftp.Account = ac
ftp.Password = pa
ftp.Port = po
Dim path As String = "/2023" 
Dim dls As List(Of String) = ftp.GetDetailList(path)
Dim fls As List(Of String)
Dim path1 As String

For Each dl As String In dls
    
    Output.Show(dl)
    
Next 




--  作者:有点蓝
--  发布时间:2023/9/11 21:08:00
--  
要使用递归

建一个自定义函数,假设名称为child,代码
dim ftp as FTPClient = args(0)
dim path as string = args(1)

Dim dls As List(Of String) = ftp.GetDetailList(path)
For Each dl As String In dls
    Output.Show(dl)
    If dl.EndsWith("*D") Then
        Functions.Execute("child",ftp ,path & "\\" & dl.split("*")(0))
    End If 
Next 

命令窗口测试
Dim ftp As New FTPClient
Dim ip As String = Tables("网络设置").Current("地址")
Dim ac As String = Tables("网络设置").Current("帐号")
Dim pa As String = Tables("网络设置").Current("密码")
Dim po As String = Tables("网络设置").Current("端口")
ftp.Host = ip
ftp.Account = ac
ftp.Password = pa
ftp.Port = po
Dim path As String = "\\2023" 
Functions.Execute("child",ftp ,dl)
[此贴子已经被作者于2023/9/11 23:04:12编辑过]

--  作者:lianghanyu
--  发布时间:2023/9/12 7:43:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:123.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:321.jpg
图片点击可在新窗口打开查看


--  作者:有点蓝
--  发布时间:2023/9/12 8:36:00
--  
Dim path As String = "\\2023" 
Functions.Execute("child",ftp ,path )

--  作者:lianghanyu
--  发布时间:2023/9/12 9:01:00
--  
谢谢。  为此,我去帮助里学习一下递归函数