2017-01-05 5 views
1

FTPアップロードに問題があります。私はフォルダを作成しようとしているし、それらにファイルをアップロードしています。私のプログラムが行うべきことは、フォルダがすでに存在するかどうかを調べることです。そうでない場合は、前にチェックされた名前の新しいものを作成します。プログラムは以下のエラーを除いて正常に動作します。FTpWebRequestを使用してVB.NETでファイル/サブディレクトリが存在するか確認してください。

私の問題:
ghandleというフォルダをアップロードしたいのですが、意図したとおりに動作します。 FTPサーバー上のフォルダをチェックし.Contains方法は、ghandleを見つけて停止するためghandlehandleが含まれているため、>動作しません -
その後、私はhandleと呼ばれるフォルダをアップロードしたいです。

.Containsのような他のオプションは、完全な単語または完全一致をチェックするだけですか?ここで

は、私のソースコードは次のとおりです。事前に

Dim dirname = Path.GetFileNameWithoutExtension(openFileDialogHtml.FileName) & "_files"  
Dim ftp = "ftp://" & ftp_address.Text & "/" 
Dim user = ftp_user.Text 
Dim pass = ftp_password.Text 

Dim request As Net.FtpWebRequest = Net.FtpWebRequest.Create(ftp) 
Dim creds As Net.NetworkCredential = New Net.NetworkCredential(user, pass) 
request.Credentials = creds 

Dim resp As Net.FtpWebResponse = Nothing 
request.Method = Net.WebRequestMethods.Ftp.ListDirectoryDetails 
request.KeepAlive = True 
Using resp 
    resp = request.GetResponse() 
    Dim sr As StreamReader = New StreamReader(resp.GetResponseStream(), System.Text.Encoding.ASCII) 
    Dim s As String = sr.ReadToEnd() 
    If Not s.Contains(dirname) Then 
     request = Net.FtpWebRequest.Create(ftp & dirname) 
     request.Credentials = creds 
     request.Method = Net.WebRequestMethods.Ftp.MakeDirectory 
     resp = request.GetResponse() 
     MsgBox("Created folder " & dirname) 
    Else 
     MsgBox("Folder " & dirname & " already exists!") 
    End If 
End Using 

おかげ

答えて

0

まず、ListDirectoryを使用し、ないListDirectoryDetailsListDirectoryは、単純な名前だけを返します。あなたの目的に十分であり、解析が簡単なものです。

Dim names As String() = 
    sr.ReadToEnd().Split(New Char() {vbCr, vbLf}, StringSplitOptions.RemoveEmptyEntries) 

そして、与えられたファイル名を確認するためにIEnumerable.Contains extension methodを使用します:

それからちょうどString.Split methodを使用して、個々のファイル名の配列への出力を分割

If Not names.Contains(dirname) Then 
関連する問題