こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

VBScriptでFTP転送したファイルを削除

VBScriptでFTP転送したファイルの削除は可能でしょうか。

以下のURLを参考に、VBSでファイルをFTP転送するプログラムを作成しています。
https://esoro.jp/?p=128

このプログラムでサーバに転送したファイルを、
同じソース内で削除したいのですが、可能でしょうか。

----ソース----
'FTP送信指定
Const HostName = "xxx.xxx.xxx.xxx"
Const UserID = "userid"
Const UserPass = "password"
Const DestDir ="Upload"

Dim strDest,strSrc, UpFileName, UpFileSize, oSH, objDest

strSrc="D:\log\temp"

strDest = "ftp://" & UserID & ":" & UserPass & "@" & HostName & "/" & DestDir

Set oSH = CreateObject("Shell.Application")
Set objDest = oSH.NameSpace(strDest)

For Each objItem In oSH.NameSpace(strSrc).Items
UpFileName = objItem.Name
UpFileSize = objItem.Size
objDest.CopyHere objItem, &H04 + &H10
Next
-------------

転送は問題なく動いています。
CopyHereの部分をDELETEFILEやDELETEに変更したりして実行してみましたが、
上手くいきませんでした。

ご存じの方がいらっしゃれば、ご教示をお願い致します。

投稿日時 - 2020-08-05 10:48:42

QNo.9781466

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

No.2です
今、手元にUNIXしか無いので、IISの設定は分からないです。

因みに、先の回答にも書きましたが、ファイルのパーミッションは如何ですか?経験的には、こちらでハマる場合が多いように思います。

投稿日時 - 2020-08-05 16:08:41

ANo.2

FTPサーバーが削除を許可しているなら削除は可能です
またファイルのパーミッションにも依存します

投稿日時 - 2020-08-05 12:28:36

補足

回答ありがとうございます。
FTPサーバの削除許可とのことですが、
現在はIISでFTPサーバを構築しており、
アクセス許可は「読み取り」「書き込み」を有効にしております。
他に設定があるのでしょうか?
よろしければご教示いただけると幸いです。

投稿日時 - 2020-08-05 13:52:34

ANo.1

ある意味常識的で一般的なことになってしまいますが・・・

VBSというのはCLIENT Processで動くものですから実行端末内のファイルに対してのみ操作を許されているはずです。
ですから、FTP SVに接続してローカルストレージにあるファイルをPUT(送信)することはできるけど、送信したファイルをFTP SVから削除するためにはFTPサーバー側のプロセスでないと実行できないはずです。

ですから、VBSが登場する前はFTPクライアントを立ち上げたら実行するコマンドを列挙したバッチファイルを作り、バッチの中にFTPサーバー内のファイルを削除するコマンドを組み込んでいたと記憶しています。

VBSを初めとするスクリプトを使用するのであれば、FTPコンソールプログラムを起動させて、FTPコンソールで動くスクリプトを別途用意しないとだめかも知れません。

投稿日時 - 2020-08-05 11:23:18

あなたにオススメの質問