以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  没有子目录该怎么判断?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=68051)

--  作者:machle
--  发布时间:2015/5/8 15:22:00
--  没有子目录该怎么判断?
 For Each p As String In ftp1.GetdirList(path)

若是path下没有目录也没有文件,p会报错。该怎么加个判断是否存在子目录?

谢谢!

--  作者:Bin
--  发布时间:2015/5/8 15:24:00
--  

DirExists

判断指定的目录是否存在,语法:

DirExists(Path)

Path:要判断的目录。

示例

Dim ftp1 As New FtpClient
ftp1.Host=
"196.128.143.28"
ftp1.Account = 
"foxuser"
ftp1.Password = 
"138238110"
If 
ftp1.DirExists("\\photo") Then 
    
MessageBox.show("目录已经存在","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End If



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


--  作者:大红袍
--  发布时间:2015/5/8 15:25:00
--  

 没有目录和文件也不会报错。除非path不存在


--  作者:machle
--  发布时间:2015/5/8 15:33:00
--  回复:(Bin)DirExists判断指定的目录是否存在,语法...
确切的说是判断子目录是否存在...

path存在,但是下面没有子目录和文件

报的错误:指定的参数已超出有效值的范围。
参数名: index


Dim path As String = args(0)

For Each p As String In ftp1.GetdirList(path)
  
    Functions.Execute("FTP目录", path & "/" & p)
 
    Dim ss As String = path & "/" & p
 
    ss = ss.Replace("/","\\")
    
    \'Tables("FTPPath").StopRedraw
    
    Tables("FTPPath").AddNew()
    Tables("FTPPath").Current("第一列") = ss
    
    \'Tables("FTPPath").ResumeRedraw
Next

ftp1.close
--  作者:Bin
--  发布时间:2015/5/8 15:35:00
--  
看2楼
--  作者:machle
--  发布时间:2015/5/8 15:35:00
--  回复:(大红袍) 没有目录和文件也不会报错。除...
 path存在
,Functions.Execute("FTP目录", vars("RootPath"))

传过来的 路径下面没有子目录

--  作者:Bin
--  发布时间:2015/5/8 15:36:00
--  
看2楼
--  作者:大红袍
--  发布时间:2015/5/8 15:38:00
--  
 没有目录,就根本不会进入循环,就不可能会报错。
--  作者:machle
--  发布时间:2015/5/8 15:47:00
--  回复:(Bin)看2楼
 看了好几次2楼,也没看明白,您给我的这个代码是看看括号里的那个目录是否存在,而我需要的是看括号里那个目录是否有子目录存在,实际操作的时候我应该是不知道是否有子目录存在;
当前我知道括号里那个目录没有子目录,所以查问题,发现代码在用不存在的路径给p赋值,所以才报错。

我是这么认为的,请多指教。谢谢!

--  作者:大红袍
--  发布时间:2015/5/8 16:14:00
--  

 测试了一下,这段代码无论如何都不可能会报错,也没理由报错

 

For Each p As String In ftp1.GetdirList(path)