VB6.0でFTPでのファイルの送受信

このQ&Aのポイント
  • VB6.0を使用してFTPでのファイルの送受信を行いたいです。
  • 複数のファイルを一括転送する方法や、ファイルの送信と受信を繰り返す方法について質問があります。
  • また、ファイルの送信が完了した後、クライアント側のファイルを自動的に削除することができるのかも知りたいです。
回答を見る
  • ベストアンサー

VB6.0でFTPでのファイルの送受信

VB6.0でFTPでのファイルの送受信(下記(1))をしようと考えております。 尚、コンポーネントは、インターネットトランスファコントロール(Inet)を使用しております。 (1)"リモートサーバーに対して、複数件のファイルを送信し、無事転送が完了したら(リモートサーバー の指定フォルダに送信された複数件のファイルがあるのを確認後)、  クライアント側のファイル(リモートサーバーに送信が済んだファイル)を消す" という処理を考えております。 ここで、質問なのですが (1)vbを使ったFTP転送で、複数件のファイルを一括転送(mputコマンドの使用)は、可能か?  (2)もし、(1)が不可能の場合、    "送信するファイルをputコマンドで1つ送って、リモート側にそのファイルがあるのを    getコマンドで確認して、もしgetであれば、クライアント側のそのファイルを消す" という処理を送信するファイル数分繰り返すことになるんですか?        1つのファイルの場合に、Inet1_State_Changeイベントで、ループさせstate = 12 の時( リモート側に正常に送信されたと考えて)、クライアント側のファイルを消していいのでしょうか?    VBのヘルプを見ると、state = 12 は、get処理で使用するというようなことを書いてありますが。     以上 

  • Pedro
  • お礼率59% (28/47)

質問者が選んだベストアンサー

  • ベストアンサー
  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.1

フリーソフトのFFFTPを使用したことがありますか? あれを見てみてはいかがでしょうか? ソフトが送っているコマンドが見ることができます。 (1)一括は無理です。1ファイルずつの転送になります。 (2)そのとおりです、消して送信の処理が望ましいですが、消さないでも送信することができたと思います。 ちなみにFTPソフトを作成するのであればWinSockを使用したほうがよいと思います。未検証ですが、権限など更新(755みたいに設定すること)の情報はInetでは無理のような気が・・・ 未検証なのでなんとも言えませんが、ぼくもFTPソフトを個人で作成中ですが、WinSockのコマンドを使用しています。

関連するQ&A

  • FTPでのGET

    サーバ上にあるファイルをFTPのGETでダウンロードする場合、 転送中のサーバ上のファイルは、どうなるのですか? 切り取りで転送することは可能ですか? サーバ側では、 クライアント側で転送中であるかどうか、 もしくは削除して欲しいのですが。 転送中に、そのファイルを触れないようにするため。

  • FTPコマンドでgetしたい

    FTPコマンドでファイルを転送したい。操作はクライアントで行っています。 サーバ⇒クライアントです。ディレクトリー構成は。(サーバー側)c:\2.txt を⇒(クライアント側)c:\2.txt に転送したいのですがエラーが出ます。次のように実行しています。 ftp>get c:\2.txt c:\2.txt としています。これを実行すると次のエラー 【550 c:\2.txt :The filename is incorrect】 と出ます。どうすればよいでしょうか? ファイルタイプもascii にしたりbin にしたり試しているがだめです。 お願いします。

  • ftpでファイル追加バックアップ

    ftpを利用してファイルのバックアップをしたいです。 リモート側はファイルがどんどん溜まっていきます(日に数10ファイル)。 ローカル側で同じディレクトリ内に1日1回 mget *.* でgetしてきたいのですが、普通にやると、 過去にgetしたファイルも改めて上書きでgetしてきてしまいます。 ローカルにあるファイル名とリモートにあるファイル名を見極めてローカルにあるファイル名の ファイルはgetしてこないコマンドはありませんか?

  • Inet で FTP のファイル送信したときのファイル属性

    Inet の FTP でサーバ(UNIX)へファイルを送信すると、 ファイル属性が(rw_r__r__)になります。 FFFTPを使っても同じなので、Inetの問題ではないのですが。 サーバ側の(.cshrc)ファイルでは、umaskは(002)です。 それなら、(rw_rw_r__)になっていいと思うのですが、どなたかどこに設定すればいいのか、ご存知でしたらお教えください。

  • 実行ファイルの動作について

    VB6.0を用いて簡単なアプリケーションを作成しています。 内容は、Inetコントロールを用いてFTPサーバとクライアント間でのファイル転送を行うものです。 プログラムを作成し実行してみたところ、 プロジェクト上では動作しますが、 実行ファイルを作成し、そこで実行させると途中でなぜかハングしてしまいます。 しかし、ファイルの転送には成功しているようです。 転送後のエラー処理に不具合があるのかとも思いますが、 プロジェクト上では問題ありません。 何度もコンパイルし直し、その都度実行ファイルも 作成しなおしています。 なぜでしょうか?? どなたかアドバイスいただけないでしょうか?

  • inetコントロールを使用したFTP送信の質問その1

    ローカルにあるファイルを、FTPサーバに送信するプログラムを作成しました。 inetコントロールを使用して、以下のようなプログラムを組みました。 Private sub ftp()  Inet1.Protocol=icFTP  Inet1.Url="ftp://xxx.xxx.xxx.xxx/"  Inet1.UserName="aaaa"  Inet1.Password="bbbb"  Inet1.Execute , "SEND x:\xxx\xxx.txt xxx/xxx.txt" End sub Private sub Inet1_StateChanged(Byval State As Integer) Dim sMsg As String  Select Case State   Case icRequestSent    sMsg = "送信完了"    TCall LogWrite(sMsg) ログをファイルに書く(自作関数)   Case icError    sMsg = Inet1.ResponseCode & " " & Inet1.ResponseInfo    Call LogWrite(sMsg) エラーログをファイルに書く(自作関数)  End Select End Sub ファイルを複数送信するため、「sub ftp()」は複数回呼び出されます。 上記プログラムにCLOSEコマンドとCANCELメソッドを追加して、以下のようにしたほうがよいのでしょうか? CLOSEコマンドとCANCELメソッドの使い方がよくわからず、悩んでいます。 Private sub ftp()  Inet1.Protocol=icFTP  Inet1.Url="ftp://xxx.xxx.xxx.xxx/"  Inet1.UserName="aaaa"  Inet1.Password="bbbb"  Inet1.Execute , "SEND x:\xxx\xxx.txt xxx/xxx.txt"  Inet1.Execute , "CLOSE" End sub Private sub Inet1_StateChanged(Byval State As Integer) Dim sMsg As String  Select Case State   Case icRequestSent    sMsg = "送信完了"    TCall LogWrite(sMsg) ログをファイルに書く(自作関数)   Case icError    sMsg = Inet1.ResponseCode & " " & Inet1.ResponseInfo    Call ErrLogWrite(sMsg) エラーログをファイルに書く(自作関数)    Inet1.Cancel  End Select End Sub

  • VB.NETでサーバーからFILEを取得する

    サーバー上にあるテキストファイルを FTPで取得したいのですが VBであればInetを使用して↓のように取得が可能 だったのですがVB.NETでのInetの使用方法がわかりません どなたかご存知の方がいらしたらご教授願えますか? また、別の方法がありましたらアドバイスをお願いします。 宜しくお願いいたします。 ==================== Dim FileName As String Inet.URL = "ftp://hostname/home/temp/" Inet.UserName = "username" Inet.Password = "password" Inet.Execute(, "GET test.txt " & FileName) Do While Inet.StillExecuting = True DoEvents() Loop MsgBox("ダウンロード終了") ====================

  • HTTPでファイル転送させるには?

    質問1 HTTPでのファイル転送 以下のようなことを考えています。 1)多数のクライアントから、サーバに対してテキストファイルをある周期で転送します。 2)クライアントには固定IPアドレスが割り振られています。 3)クライアントはWindows2000/XPです。 4)サーバはWindowsServer2003かUNIX(メーカ未定)を導入予定です。 5)クライアントとサーバの間にはセグメント越えが必要な場合があり、HTTPのみ利用可能です。 6)ファイル転送のソフト(もしくはコマンド)はクライアント側にあり、クライアントからサーバにファイルをPUSHします。(サーバからPULLするのではありません) こういった上記の要件の場合、HTTPでテキストファイルをサーバに転送させることは可能でしょうか? 質問2 ファイル転送の結果を検証する ファイル転送後に、確実に送信できたかどうかを知る方法を教えてください。FTPだと、ファイルリスト、ファイルサイズ、タイムスタンプなどを確認してチェックするという方法が思いつくのですが、HTTPの場合はどうなんでしょうか? 以上、2つの質問に対して、可能であるならば、 ・こういうコマンドを利用すればよいよ ・こういう関数があるよ ・こういうソフトがあるよ など、どんなささいな情報でも結構ですので、情報をいただけると大変幸いです。

  • FTPのPUT、GETについて

    FTPのPUT、GETについてお教え下さい。現在サーバーの設定は完了し、DOS画面よりFTPでPUTを行っているのですが、送信先となるサーバーにファイルサイズがゼロのファイルが作成され、途中で止まった状態になってしまいます。GETも同様でサーバーからクライアントにファイルを取得はしているのですが、ファイルサイズがゼロのファイルが作成され止まった状態になってしまいます。また、他のサーバーでPUT、GETを行うとPUT、GET共にファイルの取得も送信も出来ます(クライアントは同じPCを使っています)。やはりサーバーの設定が足りないのでしょうか? どなたか対策方法をご存知の方がいましたらお教え下さい。よろしくお願い致します。

  • FTPサーバを立てファイルを転送できるようにしたいのですが・・

    現在,大学生の者です. ネットワークには詳しくなく素人質問で恐縮ですが,よろしくお願いします. 現在,FTPサーバを立て,サーバとクライアント間でファイルの転送ができるようにしたいと考えています. そこでクライアント側にはffftpを,サーバ側にはNekosogiFtpdをインストールしようと考えたのですが,NekosogiFtpdがvista非対応でした.(サーバ,クライアントともにOSはvistaです) ほかにどのような方法があるのでしょうか? ご存じの方がいらっしゃいましたら,ご返答お願い致します.