FTPサーバ上の複数ファイルを削除するには?

解決


ひろし  2006-12-17 02:37:00  No: 97433

はじめまして。
InetコントロールでFTPサーバ上のフォルダを削除するために、
まずはそのフォルダ内のファイルを全て削除したいのですが、
DOSプロンプトから自分で実行する場合だと、"prompt"を実行してから
"mdelete *"を実行すればいちいち確認されずに済みますよね。
ところが、VBで同じことをしようとした場合、
以下のソースの"prompt"までいった後、画面に制御が戻ってきてしまって
"mdelete"の行以下を実行してくれないのですが、
どこに原因があるのでしょうか?
それとも"prompt"は使えないのでしょうか?
よろしくお願い致します。

Private Sub Command1_Click()
    Inet1.URL = "ftp://xxxxx"
    Inet1.UserName = "xxxxx"
    Inet1.Password = "xxxxx"
    Inet1.RequestTimeout = 60
    Inet1.Protocol = icFTP

    Inet1.Execute , "cd data"
    Do While Inet1.StillExecuting
        DoEvents
    Loop

    Inet1.Execute , "prompt"
    Do While Inet1.StillExecuting
        DoEvents
    Loop

    Inet1.Execute , "mdelete *"
    Do While Inet1.StillExecuting
        DoEvents
    Loop

    Inet1.Execute , "close"
    Do While Inet1.StillExecuting
        DoEvents
    Loop

    Inet1.Execute , "quit"
    Do While Inet1.StillExecuting
        DoEvents
    Loop

    Inet1.Cancel
End Sub


ヤマ@文系  2006-12-18 00:35:56  No: 97434

そもそも、prompt や  mdelete
がFTPで定義されていないと思いますよ。
Microsoftのftp.exeをコマンドプロンプトから
使う方法と、
実際にFTPを実装する方法は違います。

RFC日本語訳
'http://hp.vector.co.jp/authors/VA002682/rfc959j.htm

>"mdelete"の行以下を実行してくれないのですが、
>どこに原因があるのでしょうか?
FTPサーバがコマンドを認識してないからではないでしょうか。

1.telnetでアクセスしてみる。
2.Inetのデータ受信をしてデバッグしてみる

などはやっておいてもいいかとおもいます。

FTPのやりとり
'http://www.atmarkit.co.jp/fnetwork/rensai/tcp05/01.html


かわい  2006-12-18 05:17:09  No: 97435

因みに、以前私が作成した複数テルネット
からftpするツールではwinsockコントロールを
使っていますがコマンドをそのまま投げていますので
使えると思います。過去ログ検索してみてハイかが?


ひろし  2006-12-18 05:24:33  No: 97436

レスありがとうございます。

>そもそも、prompt や  mdelete
>がFTPで定義されていないと思いますよ。

inetコントロールで複数ファイル削除を実現したい場合には
GetChunkメソッドを使ってファイル名を取得し、
1つずつ削除するしかないということなのでしょうか?

よろしくお願い致します。


ヤマ@文系  2006-12-18 22:48:42  No: 97437

ワイルドカードでファイル名を*.*と指定すればいいのではないでしょうか。
FTPのリファランスを
ワイルドカードで調べてみてください。


ひろし  2006-12-19 01:31:20  No: 97438

複数ファイルを指定する場合にはmput,mget,mdeleteを使う必要があり、
put,get,deleteでのワイルドカード指定はできないようです。
ですので、やはりGetChunkメソッドを使って存在チェックをすることにしました。
いろいろありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加