检查现有文件夹并创建目录 [英] Check existed folder and create directory
问题描述
大家好,
有人可以帮我检查我的代码是否有效吗?我只是编写一些代码以将文件上传到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屋!