Foxtable(狐表)用户栏目专家坐堂 → [求助]删除目录


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

主题:[求助]删除目录

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


加好友 发短信
等级:三尾狐 帖子:633 积分:4034 威望:0 精华:0 注册:2014/6/23 10:27:00
[求助]删除目录  发帖心情 Post By:2015/3/19 16:04:00 [只看该作者]

当子目录里面的文件为空,那就把当前的子目录删除。

Dim ftp As New FtpClient
Dim dls As List(of String)
ftp.Host="192.168.1.35"
ftp.Account = "tester"
ftp.Password = "tester"
Dim lj As String = "/待用户现场确认版本_产线禁止使用/2015/" & Tables("临时版本跟踪表").current("临时版本编号") & "(" & Tables("临时版本跟踪表").current("客户") & "_" & Tables("临时版本跟踪表").current("博达机型") & ")"

dls = ftp.GetDirList("lj")
msgbox(lj)
For Each dl As String In dls
If (lj &  "/" & dl). count<= 1 Then
ftp.DeleteDir(lj &  "/" & dl)
End If    
Next--------------红色的改怎么写,主要是判断子目录里面文件的个数。
ftp.Close
Forms("FTP管理器").close
比如待用户现场确认版本_产线禁止使用\2015\11130_2014(TELESTE AB_S2528gx)下面有这么多按照时间建立的子目录。如果某几个子目录下的文件为空,然后自动删除这个子目录。

图片点击可在新窗口打开查看此主题相关图片如下:子目录.png
图片点击可在新窗口打开查看


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/3/19 16:06:00 [只看该作者]

http://www.foxtable.com/help/topics/1410.htm

GetFileList

用于返回FTP服务器指定目录下的全部文件名,以字符串集合的形式返回,语法:

GetFileList(Path)

Path:可选参数,用于指定目录,如果省略,则返回当前目录下的全部文件名。

示例

例如列出photo目录下的所有文件:

Dim ftp1 As New FtpClient
Dim 
fls As List(of String
ftp1.Host=
"196.128.143.28"
ftp1
.Account = "foxuser"
ftp1
.Password = "138238110"
fls = ftp1.GetFileList(
"\photo")
For Each 
fl As String In fls
    
Output.Show(fl)
Next

还可以使用通配符,例如列出photo目录下的所有jpg文件:

Dim ftp1 As New FtpClient
Dim 
fls As List(of String
ftp1
.Host="196.128.143.28"
ftp1
.Account = "foxuser"
ftp1
.Password = "138238110"
fls = ftp1.GetFileList(
"\photo\*.jpg")
For Each 
fl As String In fls
    
Output.Show(fl)
Next

GetDirList

用于返回FTP服务器指定目录下的全部子目录,以字符串集合的形式返回,语法:

GetDirList(Path)

Path:可选参数,用于指定目录,如果省略,则返回当前目录下的全部子目录名。

示例

Dim ftp1 As New FtpClient
Dim
 dls As List(of String
ftp1.Host=
"196.128.143.28"
ftp1.Account = 
"foxuser"
ftp1.Password = 
"138238110"
dls = ftp1.GetDirList(
"\photo")
For
 Each dl As String In dls
    
Output.Show(dl)
Next


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/3/19 16:08:00 [只看该作者]

Dim ftp As New FtpClient
Dim dls As List(of String)
ftp.Host="192.168.1.35"
ftp.Account = "tester"
ftp.Password = "tester"
Dim lj As String = "/待用户现场确认版本_产线禁止使用/2015/" & Tables("临时版本跟踪表").current("临时版本编号") & "(" & Tables("临时版本跟踪表").current("客户") & "_" & Tables("临时版本跟踪表").current("博达机型") & ")"


dls = ftp.GetDirList(lj)
msgbox(lj)
For Each dl As String In dls
    If ftp.GetFileList(lj & "/" & dl).Count < 1 Then
        ftp.DeleteDir(lj &  "/" & dl)
    End If
Next
ftp.Close
Forms("FTP管理器").close


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


加好友 发短信
等级:三尾狐 帖子:633 积分:4034 威望:0 精华:0 注册:2014/6/23 10:27:00
  发帖心情 Post By:2015/3/19 16:38:00 [只看该作者]

效果不对,并没有删除为空的子目录。
Dim ftp As New FtpClient
Dim dls As List(of String)
ftp.Host="192.168.1.35"
ftp.Account = "tester"
ftp.Password = "tester"
Dim lj As String = "/待用户现场确认版本_产线禁止使用/2015/" & Tables("临时版本跟踪表").current("临时版本编号") & "(" & Tables("临时版本跟踪表").current("客户") & "_" & Tables("临时版本跟踪表").current("博达机型") & ")"


dls = ftp.GetDirList("lj")
msgbox(lj)-------已执行
For Each dl As String In dls
msgbox(dl)---未执行,应该是把dls中的每个元素都列出来才对。
 If ftp.GetFileList(lj & "/" & dl).Count < 2 Then
        ftp.DeleteDir(lj &  "/" & dl)
    End If    --------这个if判断未删除为空的子目录。
Next
ftp.Close
Forms("FTP管理器").close

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/3/19 18:04:00 [只看该作者]

这句写错了啊

dls = ftp.GetDirList("lj")
 
看3楼

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


加好友 发短信
等级:三尾狐 帖子:633 积分:4034 威望:0 精华:0 注册:2014/6/23 10:27:00
  发帖心情 Post By:2015/3/19 18:38:00 [只看该作者]

还是没删除啊。
Dim ftp As New FtpClient
Dim dls As List(of String)
ftp.Host="192.168.1.35"
ftp.Account = "tester"
ftp.Password = "tester"
Dim lj As String = "/待用户现场确认版本_产线禁止使用/2015/" & Tables("临时版本跟踪表").current("临时版本编号") & "(" & Tables("临时版本跟踪表").current("客户") & "_" & Tables("临时版本跟踪表").current("博达机型") & ")"
dls = ftp.GetDirList(lj)
msgbox(lj)
For Each dl As String In dls
    If ftp.GetFileList(lj & "/" & dl).Count < 1 Then
        ftp.DeleteDir(lj &  "/" & dl)
        msgbox(dl)-----弹出的文件夹名称是对的,但却没删除。
    End If
Next

ftp.Close
Forms("FTP管理器").close

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/3/19 19:30:00 [只看该作者]

ftp.DeleteDir(lj &  "/" & dl, True)

 

DeleteDir

删除FTP上的目录,语法:

DeleteDir(DirName,AnyWay)

DirName:要删除的目录名称。
AnyWay:可选参数,如果设为True,将删除目录下的文件及其子目录,如果省略此参数,则只有此目录为空的时候,才能删除。

如果删除成功,返回True,否则返回False

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
新福星
  8楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1959 积分:15508 威望:0 精华:0 注册:2011/7/16 20:59:00
  发帖心情 Post By:2016/7/9 5:23:00 [只看该作者]

我也遇到这种情况,用FTP ftp.DeleteDir(mlm, True)    这个命令空目录无法删除!

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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/7/9 9:27:00 [只看该作者]

测试没有问题。

有时候操作系统就是这样,删除了,目录却还在,这个没有办法的。用的时候判断一下吧

 回到顶部