- - PR -
FTP転送でのデータコネクション情報取得について
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-06-06 14:21
ソースをみるかぎり、 コーディングは足りないのではなく、間違っています。 TCP/IP、SocketやTCPListenerの理解が足りません。 FTPは結構めんどくさいプロトコルです。 もう少し基礎的な勉強してからとりかかるか、 FTPRequestクラスなど、より高位の実装を使いましょう。 | ||||
|
投稿日時: 2007-06-06 17:18
SOCKETでの作成を中断して
WebClientを利用した、FTP転送を行おうと 考えたのですが転送終了後にリネームを行うことは可能なのでしょうか? | ||||
|
投稿日時: 2007-06-06 23:59
転送時、サーバー側のURIを指定するときに、単にクライアントと違うファイル名を指定すれば いいと思うのですが、転送「終了後」である必要があるということですか? | ||||
|
投稿日時: 2007-06-08 08:51
返事が遅くなり申し訳ありません。
ファイルのリネーム時期は、転送終了後でなければいけない仕様となっています。 (おそらく、サーバー側のプログラムが動作してしまうのを避けるためだと思われ ます) 下記にコードを示します。 Public Sub UploadFile(ByVal fileName As String) Try Dim newFile As String = IO.Path.GetFileName(fileName) '送信先URIを指定 Dim uri As String = "ftp://" & myServerName & "/" & myDirectory & "/" & newFile Dim myFile As String = fileName myClient = FtpWebRequest.Create(uri) myClient.Credentials = New NetworkCredential(myUserID, myPassword) myClient.Method = WebRequestMethods.Ftp.UploadFile myClient.UseBinary = False Using st As Stream = myClient.GetRequestStream() Using fs As New FileStream(myFile, FileMode.Open) Dim buf(1024) As Byte Dim count As Integer = 0 Do count = fs.Read(buf, 0, buf.Length) st.Write(buf, 0, count) Loop While count <> 0 End Using End Using Catch ex As Exception Throw New IOException("ファイルアップロードエラー") End Try End Sub この関数の後にリネームしたいと考えております。 宜しく御願いします。 | ||||
|
投稿日時: 2007-06-08 09:21
今日は
試してはいませんが、 myClient.Method = WebRequestMethods.Ftp.Rename myClient.RenameTo=NewName では変更できませんか? | ||||
|
投稿日時: 2007-06-08 12:37
早速のご返答ありがとうございます。
早速試してみようと思います。 |