检查现有文件夹并创建目录 [英] Check existed folder and create directory

查看:100
本文介绍了检查现有文件夹并创建目录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,

有人可以帮我检查我的代码是否有效吗?我只是编写一些代码以将文件上传到FTP服务器(我朋友的PC:192.168.1.62).我们通过代理服务器连接(例如:192.168.1.1).在将文件上传到FTP之前,需要检查FTP中是否存在特定的文件夹.如果没有,它将创建一个.如果我的代码错误,请检查并更正我..该文件是一堆Images.jpg,可以按日期和时间定义其名称

Hi all,

Could someone help me to check whether my code is valid or not?I just make some code for uploading file into FTP server(my friend''s PC:192.168.1.62). We connected by proxy server (eg: 192.168.1.1). Before I upload file into FTP, I need to check whether a specific folder is existed in FTP. If not, it will create one. Please check and correct me if my code is wrong..The file is a bunch of an Images.jpg which define it''s name by date and time

Private Sub getFileName_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles getFileName.Click

      Dim source As String = "C:\FTP\Backup\"
      Dim i As Integer
      Dim strFTPCollNo As String = String.Empty
      Dim strFTPDate As String = String.Empty
      Dim getFileName As String() = Directory.GetFiles(source, "*.jpg")
      Dim strFileName As String
      Dim strFilePath As String
      Dim FTPUsername As String = "FTPName"
      Dim FTPPassword As String = "FTPPwd"
      Dim FTPServerName As String = "192.168.1.62"
      Dim DestFile As String = "//192.168.1.62/c$/C:/FTPFolder/"
      Dim strProxy As String = "192.168.1.1"

   For i = 0 To getFileName.Length
      strFilePath = getFileName(i)
      strFileName = Path.GetFileName(getFileName(i))
      strFTPDate = Format(Date.Today,"ddMMyyyy")
      DestFile = DestFile & strFTPDate
      TryCheckFTPServer(strFilePath, DestFile, FTPUsername, FTPPassword, strProxy)
   Next
End Sub
---------------------------------------------------------------------------------
Private Sub TryCheckFTPServer(ByVal strSourceFile As String, ByVal strDestFile As String, ByVal strUserID As String, ByVal strPassword As String, ByVal strProxy As String)

     Dim buffer() As Byte
     Dim stream As FileStream
     Dim reqStream As Stream
     Dim request As FtpWebRequest = WebRequest.Create(DestFile)

     request.Credentials = New NetworkCredential(FTPUsername, FTPPassword)
     request.Method = WebRequestMethods.Ftp.ListDirectory
     request.Method = WebRequestMethods.Ftp.PrintWorkingDirectory

Try
     Dim response As FtpWebResponse = request.GetResponse()
     request.KeepAlive = False
     request.UseBinary = True
     request.Method = WebRequestMethods.Ftp.UploadFile
     request.Credentials = New NetworkCredential(strUserID, strPassword)
     request.UsePassive = True
     request.UseBinary = True
     request.KeepAlive = False


     If strProxy = String.Empty Then
         webReq.Proxy = Nothing
     Else
         webReq.Proxy = strProxy.Trim
     End If

     stream = File.OpenRead(strSourceFile)
     ReDim buffer(stream.Length)

     stream.Read(buffer, 0, buffer.Length)
     stream.Close()

     reqStream = webReq.GetRequestStream
     reqStream.Write(buffer, 0, buffer.Length)
     reqStream.Close()

Catch ex As WebException
     Dim response As FtpWebResponse = ex.Response
     If response.StatusCode = FtpStatusCode.ActionNotTakenFileUnavailable Then
        CreateFTPServer(strSourceFile, strDestFile, strUserID, strPassword, strProxy)
     End If
End Try
End Sub
---------------------------------------------------------------------------------
Private SubCreateFTPServer(ByVal strSourceFile As String, ByVal strDestFile As String, ByVal strUserID As String, ByVal strPassword As String, ByVal strProxy As String) As Boolean

    Dim file As Byte()
    Dim req As FtpWebRequest = WebRequest.Create(strDestFile)
    Dim credentials As New System.Net.NetworkCredential(strUserID, strPassword)

    Try
        webReq = FtpWebRequest.Create(strDestFile)
        webReq.Method = WebRequestMethods.Ftp.UploadFile
        webReq.Credentials = New NetworkCredential(strUserID, strPassword)
        webReq.UsePassive = True
        webReq.UseBinary = True
        webReq.KeepAlive = False

        If strProxy = String.Empty Then
            webReq.Proxy = Nothing
        Else
            webReq.Proxy = strProxy.Trim
        End If

        stream = File.OpenRead(strSourceFile)
        ReDim buffer(stream.Length)

        stream.Read(buffer, 0, buffer.Length)
        stream.Close()

        reqStream = webReq.GetRequestStream
        reqStream.Write(buffer, 0, buffer.Length)
        reqStream.Close()
    Catch ex As Exception

    End Try
End Sub



有人请帮助我



Someone please help me

推荐答案

/C:/FTPFolder/" Dim strProxy As 字符串 = " 对于 i = 0 >到 getFileName.Length strFilePath = getFileName(i) strFileName = Path.GetFileName(getFileName(i)) strFTPDate = Format(日期.今天," ) DestFile = DestFile& strFTPDate TryCheckFTPServer(strFilePath,DestFile,FTPUsername,FTPPassword,strProxy) 下一步 结束 -------------------------------------------------- ------------------------------- 私有 TryCheckFTPServer( ByVal strSourceFile As 字符串 ByVal strDestFile 字符串 ByVal strUserID 字符串 As 字符串 ByVal strProxy As 字符串) Dim buffer() As Byte Dim As FileStream Dim reqStream As Dim 请求 As FtpWebRequest = WebRequest.Create(DestFile) request.Credentials = NetworkCredential(FTPUsername,FTPPassword) request.Method = WebRequestMethods.Ftp.ListDirectory request.Method = WebRequestMethods.Ftp.PrintWorkingDirectory 尝试 Dim 响应 As FtpWebResponse = request.GetResponse() request.KeepAlive = 错误 request.UseBinary = request.Method = WebRequestMethods.Ftp.UploadFile request.Credentials = 新建 NetworkCredential(strUserID,strPassword) request.UsePassive = 真实 request.UseBinary = request.KeepAlive = 错误 如果 strProxy = 字符串.空然后 webReq.Proxy = 没什么 其他 webReq.Proxy = strProxy.Trim 结束 如果 流= File.OpenRead(strSourceFile) ReDim 缓冲区(stream.Length) stream.Read(buffer, 0 ,buffer.Length) stream.Close() reqStream = webReq.GetRequestStream reqStream.Write(buffer, 0 ,buffer.Length) reqStream.Close() 捕获,例如 As WebException Dim 响应 As FtpWebResponse = ex.Response 如果响应.StatusCode= FtpStatusCode.ActionNotTakenFileUnavailable 然后 CreateFTPServer(strSourceFile,strDestFile,strUserID,strPassword,strProxy) 结束 如果 结束 尝试 结束 -------------------------------------------------- ------------------------------- 私有 SubCreateFTPServer( ByVal strSourceFile As 字符串 ByVal strDestFile As ByVal strUserID 字符串 As ByVal strProxy As 字符串) As 布尔值 Dim 文件 As Byte () Dim 要求 As FtpWebRequest = WebRequest.Create(strDestFile) Dim 凭据 As New System.Net. NetworkCredential(strUserID,strPassword) 尝试 webReq = FtpWebRequest.Create(strDestFile) webReq.Method = WebRequestMethods.Ftp.UploadFile webReq.Credentials = 新建 NetworkCredential(strUserID,strPassword) webReq.UsePassive = 真实 webReq.UseBinary = webReq.KeepAlive = 错误 如果 strProxy = 字符串.空然后 webReq.Proxy = 没什么 其他 webReq.Proxy = strProxy.Trim 结束 如果 流= File.OpenRead(strSourceFile) ReDim 缓冲区(stream.Length) stream.Read(buffer, 0 ,buffer.Length) stream.Close() reqStream = webReq.GetRequestStream reqStream.Write(buffer, 0 ,buffer.Length) reqStream.Close() 捕获,例如 As 异常 结束 尝试 结束
/C:/FTPFolder/" Dim strProxy As String = "192.168.1.1" For i = 0 To getFileName.Length strFilePath = getFileName(i) strFileName = Path.GetFileName(getFileName(i)) strFTPDate = Format(Date.Today,"ddMMyyyy") DestFile = DestFile & strFTPDate TryCheckFTPServer(strFilePath, DestFile, FTPUsername, FTPPassword, strProxy) Next End Sub --------------------------------------------------------------------------------- Private Sub TryCheckFTPServer(ByVal strSourceFile As String, ByVal strDestFile As String, ByVal strUserID As String, ByVal strPassword As String, ByVal strProxy As String) Dim buffer() As Byte Dim stream As FileStream Dim reqStream As Stream Dim request As FtpWebRequest = WebRequest.Create(DestFile) request.Credentials = New NetworkCredential(FTPUsername, FTPPassword) request.Method = WebRequestMethods.Ftp.ListDirectory request.Method = WebRequestMethods.Ftp.PrintWorkingDirectory Try Dim response As FtpWebResponse = request.GetResponse() request.KeepAlive = False request.UseBinary = True request.Method = WebRequestMethods.Ftp.UploadFile request.Credentials = New NetworkCredential(strUserID, strPassword) request.UsePassive = True request.UseBinary = True request.KeepAlive = False If strProxy = String.Empty Then webReq.Proxy = Nothing Else webReq.Proxy = strProxy.Trim End If stream = File.OpenRead(strSourceFile) ReDim buffer(stream.Length) stream.Read(buffer, 0, buffer.Length) stream.Close() reqStream = webReq.GetRequestStream reqStream.Write(buffer, 0, buffer.Length) reqStream.Close() Catch ex As WebException Dim response As FtpWebResponse = ex.Response If response.StatusCode = FtpStatusCode.ActionNotTakenFileUnavailable Then CreateFTPServer(strSourceFile, strDestFile, strUserID, strPassword, strProxy) End If End Try End Sub --------------------------------------------------------------------------------- Private SubCreateFTPServer(ByVal strSourceFile As String, ByVal strDestFile As String, ByVal strUserID As String, ByVal strPassword As String, ByVal strProxy As String) As Boolean Dim file As Byte() Dim req As FtpWebRequest = WebRequest.Create(strDestFile) Dim credentials As New System.Net.NetworkCredential(strUserID, strPassword) Try webReq = FtpWebRequest.Create(strDestFile) webReq.Method = WebRequestMethods.Ftp.UploadFile webReq.Credentials = New NetworkCredential(strUserID, strPassword) webReq.UsePassive = True webReq.UseBinary = True webReq.KeepAlive = False If strProxy = String.Empty Then webReq.Proxy = Nothing Else webReq.Proxy = strProxy.Trim End If stream = File.OpenRead(strSourceFile) ReDim buffer(stream.Length) stream.Read(buffer, 0, buffer.Length) stream.Close() reqStream = webReq.GetRequestStream reqStream.Write(buffer, 0, buffer.Length) reqStream.Close() Catch ex As Exception End Try End Sub



有人请帮助我



Someone please help me


这篇关于检查现有文件夹并创建目录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆