如何编写一个创建FTP站点的函数?

所属分类: 网络编程 / 编程10000问 阅读数: 1457
收藏 0 赞 0 分享

如何编写一个创建FTP站点的函数?

Function ASTCreateFtpSite(IPAddress, RootDirectory, ServerComment, HostName, PortNum, Computer, Start,LogFileDirectory)
    Dim MSFTPSVC, FtpServer, NewFtpServer, NewDir
    Dim Bindings, BindingString, NewBindings, Index, SiteObj, bDone
        On Error Resume Next
        Err.Clear
        Set MSFTPSVC = GetObject("IIS://" & Computer & "/MSFTPSVC")
        If Err.Number <> 0 Then
            WScript.Echo "
无法打开: "&"IIS://" & Computer & "/MSFTPSVC" & VbCrlf & "程序将退出!"
            WScript.Quit (1)
        End If

        BindingString = IpAddress & ":" & PortNum & ":" & HostName
        For Each FtpServer in MSFTPSVC
            If FtpServer.Class="IIsFtpServer" Then
            Bindings = FtpServer.ServerBindings
            If BindingString = Bindings(0) Then
                WScript.Echo "
,IP地址冲突:" & IpAddress & ",请检测IP地址!" & VbCrlf & "取消创建本站点."
                Exit Function
            End If
            End If
        Next

        Index = 1
        bDone = False

        While (Not bDone)
            Err.Clear
            Set SiteObj = GetObject("IIS://"&Computer&"/MSFTPSVC/" & Index)
            If (Err.Number = 0) Then
                Index = Index + 1
            Else
                Err.Clear
                Set NewFtpServer = MSFTPSVC.Create("IIsFtpServer", Index)
                If (Err.Number <> 0) Then
                    Index = Index + 1
                Else
                    Err.Clear
                    Set SiteObj = GetObject("IIS://"&Computer&"/MSFTPSVC/" & Index)
                    If (Err.Number = 0) Then
                        bDone = True
                    Else
                        Index = Index + 1
                    End If
                End If
            End If

            If (Index > 10000) Then
                WScript.Echo "
,创建站点异常!正在创建的站点的序号为:"&Index&"." & VbCrlf & "取消创建本站点."
                Exit Function
            End If
        Wend

        NewBindings = Array(0)
        NewBindings(0) = BindingString
        NewFtpServer.ServerBindings = NewBindings
        NewFtpServer.ServerComment = ServerComment
        NewFtpServer.AllowAnonymous = False
        NewFtpServer.AccessWrite = True
        NewFtpServer.AccessRead = True
        NewFtpServer.DontLog = False
        NewFtpServer.LogFileDirectory = LogFileDirectory
        NewFtpServer.SetInfo

        Set NewDir = NewFtpServer.Create("IIsFtpVirtualDir", "ROOT")
        NewDir.Path = RootDirectory
        NewDir.AccessRead = true
        Err.Clear
        NewDir.SetInfo
        If (Err.Number = 0) Then
        Else
            WScript.Echo "
,主目录创建时出错!"
        End If

        If Start = True Then
            Err.Clear
            Set NewFtpServer = GetObject("IIS://" & Computer & "/MSFTPSVC/" & Index)
            NewFtpServer.Start
            If Err.Number <> 0 Then
                WScript.Echo "
,启动站点时出错!"
                Err.Clear
            Else
            End If
        End If    
        ASTCreateFtpSite = Index
End Function

更多精彩内容其他人还在看

网上考试设计思路是怎样的?

网上考试设计思路是怎样的?
收藏 0 赞 0 分享

可以让程序告诉我详细的页面错误和数据库连接错误吗?

可以让程序告诉我详细的页面错误和数据库连接错误吗?
收藏 0 赞 0 分享

如何把Recordset转换成彩色的XML文件

如何把Recordset转换成彩色的XML文件
收藏 0 赞 0 分享

如何把URL和邮件地址转换为超级链接?

如何把URL和邮件地址转换为超级链接?
收藏 0 赞 0 分享

如何把一个Excel文件放到ASP页面中去?

如何把一个Excel文件放到ASP页面中去?
收藏 0 赞 0 分享

如何把中文转换为UNICODE?

如何把中文转换为UNICODE?
收藏 0 赞 0 分享

如何编写TOP 10之类的排行榜?

如何编写TOP 10之类的排行榜?
收藏 0 赞 0 分享

如何动态添加Form项?

如何动态添加Form项?
收藏 0 赞 0 分享

如何读取一个.ini文件?

如何读取一个.ini文件?
收藏 0 赞 0 分享

如何计算ASP页面的载入时间?

如何计算ASP页面的载入时间?
收藏 0 赞 0 分享
查看更多