请问INET控件如何判断一个FTP的文件夹是否存在?

wzqx 2014-07-23 10:43:14
Private Sub Command1_Click()
Inet1.Cancel '取消之前的操作
Inet1.URL = "ftp://192.168.1.33" '本地的FTP
Inet1.Protocol = icFTP
Inet1.RemoteHost = "192.168.1.33"
Inet1.RemotePort = 21
Inet1.UserName = "ABCD"
Inet1.Password = "1234"
Inet1.Execute Inet1.URL, "MKDIR 3455" '建 一个3455 的文件夹
Dim RIGHT1 As Boolean
RIGHT1 = Inet1.StillExecuting
Do While RIGHT1
RIGHT1 = Inet1.StillExecuting
DoEvents
Loop
end sub
这样建是可以建了.但有几个问题.
1.如何判断 一个文件夹是否存在? 我现在是不管存不存在都尝建.是可以可以用,但有点不靠谱.
2.还有就是 "感觉很怪" 因为Execute是异步的.但目前找不到 这些异步状态的处理方式.所以多按几下这个BUTTON有时会报错...
3.运行的有点慢,有时运行要几秒才能完成.但其实192.168.1.33就是本机的IP,按理来说应该是瞬间就完成的.
4.我看了一下FTP服务端的连接报告,大概有10条的连接,全是本机的.但我执行
Execute "CLOSE" 有时报错 有时又能用,估计是有个地方要做判断. 请大家多多指教谢谢!
...全文
312 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
nanfei01055 2014-07-25
  • 打赏
  • 举报
回复
这个程序提供了进度事件接口,可以自己写进度
nanfei01055 2014-07-25
  • 打赏
  • 举报
回复
查看我上传这个资源,简单几句代码可以实现一个ftp上传下载工具,你参考下,可以枚举的 http://download.csdn.net/detail/nanfei01055/1841290
Tiger_Zhao 2014-07-25
  • 打赏
  • 举报
回复
何必开这么多共享文件夹。
指定一台机器一个目录共享即可,下面按需要再分子目录。
既然都用到共享文件夹了,当然是按照可信任的前提设计的。
wzqx 2014-07-25
  • 打赏
  • 举报
回复
MaxConnectionsPerServer 貌似只是更改IE之类的连接数 如果是用网络共享文件夹 访问 如"\\192.168.1.33" 之类的东西的话. 超过10部电脑 就会提示达到上限. 查了N多地方都没解决方案.算是XP的一个不能更改的东西了. 实在不行只能改装个SERVER 2003了.
赵4老师 2014-07-24
  • 打赏
  • 举报
回复
引用 2 楼 wzqx 的回复:
用DIR的话, "c:\1.txt" 或者 "\\192.168.1.33\3.txt" 都是可以的 但"ftp://192.168.1.33/3.txt" 就会报错.
仅供参考
ServerShare = "\\192.168.3.56\d$"
UserName = "somedomain\someuser"
Password = "somepassword"

Set NetworkObject = CreateObject("WScript.Network")

NetworkObject.MapNetworkDrive "", ServerShare, False, UserName, Password

Set FSO = CreateObject("Scripting.FileSystemObject")
    Set Directory = FSO.GetFolder(ServerShare)
        For Each FileName In Directory.Files
            WScript.Echo FileName.Name
        Next
        Set FileName = Nothing
    Set Directory = Nothing
Set FSO = Nothing

NetworkObject.RemoveNetworkDrive ServerShare, True, False

Set NetworkObject = Nothing
wzqx 2014-07-24
  • 打赏
  • 举报
回复
用DIR的话, "c:\1.txt" 或者 "\\192.168.1.33\3.txt" 都是可以的 但"ftp://192.168.1.33/3.txt" 就会报错.
业余草 2014-07-24
  • 打赏
  • 举报
回复
高手就是高手,学习,
赵4老师 2014-07-24
  • 打赏
  • 举报
回复
XP有10个共享连接上限? 改注册表项能不能加多点?
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
"MaxConnectionsPerServer"=dword:00000040
"MaxConnectionsPer1_0Server"=dword:00000040
平头哥哥 2014-07-24
  • 打赏
  • 举报
回复
用的 还是 XP? 竟然 没用 服务器?
wzqx 2014-07-24
  • 打赏
  • 举报
回复
原来 是用WIN XP 的文档共享功能直接调用的.很方便. 但现在 系统 加了几台电脑 变成超过了XP 的10个共享连接上限了. 所以"\\192.168.1.33\" 这种连接方法就不能用了. 所以才要改成FTP 至于为会什么不换成 SERVER2003什么的.见识个那些小企业老板的战斗力就明白了.
Tiger_Zhao 2014-07-24
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
'Inet1.Cancel '异步操作要尽量执行完,否则状态很难控制'
If Inet1.StillExecuting Then Exit Sub '防止重入'

...
End Sub
  • 打赏
  • 举报
回复
str2是路径 If Dir(str2) <> "" Then msgbox "存在" End If

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧