Foxtable(狐表)用户栏目专家坐堂 → 怎样判断一个路径是文件还是文件夹


  共有2904人关注过本帖树形打印复制链接

主题:怎样判断一个路径是文件还是文件夹

帅哥哟,离线,有人找我吗?
lianghanyu
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:283 积分:2502 威望:0 精华:0 注册:2020/6/28 8:43:00
怎样判断一个路径是文件还是文件夹  发帖心情 Post By:2023/9/11 14:50:00 [只看该作者]

用GetDetailist  返回的是所有文件和文件夹的名字,   那么, 我应该怎么样判断这些返回的字符串中,哪些是属于文件,哪些是属于文件夹呢?



 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110768 积分:563772 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/9/11 15:20:00 [只看该作者]

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

 回到顶部
帅哥哟,离线,有人找我吗?
lianghanyu
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:283 积分:2502 威望:0 精华:0 注册:2020/6/28 8:43:00
  发帖心情 Post By: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 




 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110768 积分:563772 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:283 积分:2502 威望:0 精华:0 注册:2020/6/28 8:43:00
  发帖心情 Post By:2023/9/12 7:43:00 [只看该作者]


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

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


 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110768 积分:563772 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/9/12 8:36:00 [只看该作者]

Dim path As String = "\2023" 
Functions.Execute("child",ftp ,path )

 回到顶部
帅哥哟,离线,有人找我吗?
lianghanyu
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:283 积分:2502 威望:0 精华:0 注册:2020/6/28 8:43:00
  发帖心情 Post By:2023/9/12 9:01:00 [只看该作者]

谢谢。  为此,我去帮助里学习一下递归函数

 回到顶部