![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?c9bd177)
VB6からFTPを使用してファイルを送信したのですが、
パーミッション変更の仕方が分からず困っています。
いろんなところの過去ログやらを見て、FtpCommandを使用して
quote site chmod 777 ファイル名
をやれば良さそうだというところまで解ったのですが、
何せVB6なもんでFtpCommandの使用方法まで解りませんでした。
まず下記のように定義しました。
Public Declare Function FtpCommand Lib "wininet.dll" Alias "FtpCommandA" _
(ByVal hFtpSession As Long, _
ByVal fExpectResponse As Boolean, _
ByVal dwFlags As Long, _
ByVal lpszCommand As String, _
ByVal lContext As Long, _
phFtpCommand As Long) As Boolean
その後、FtpCommandの実行はこのようにしています。
lngRtn = FtpCommand(hConnection, 1, FTP_TRANSFER_TYPE_ASCII, strCmd, 0, hResponse)
パラメータで渡すコマンド文字列を下記のようにしました。
strCmd = "quote site chmod 777 temp.txt"
この場合は戻り値が0で、パーミッションも変更されませんでした。
(あっという間にlngRtnに0が入ってきました)
そこで、QUOTEを省略してみました。
strCmd = "site chmod 777 temp.txt"
すると戻り値が0でしたが、パーミッションは変更されました。
(やたら時間が掛かりました)
しかし、戻り値が0だと正常終了なのか、エラー終了なのか判断できない気がします。
判定の仕方が間違っているとか、定義が違う、パラメータが違う等、
どなたか何かご存知であればご教授願いたいと思います。
長文ですいませんでした。
環境:WinXP, Win2008Svr R2
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
この回答への補足
todo36さま。
早速のレスありがとうございます。
回答に対しての確認をさせてください。
【確認1】
> InternetGetLastResponseInfoでFTPレスポンスを見る
ということはFtpCommandの戻り値は関係ないってことでしょうか?
【確認2】
とりあえずInternetGetLastResponseInfoを入れて、
FtpCommandを実行してみました。
下記の場合は
strCmd = "quote site chmod 777 temp.txt"
lRtn = FtpCommand(hConnection, 1, FTP_TRANSFER_TYPE_ASCII, sCmd, 0, hResponse)
「Error 0: 200 Type set to A
200 PORT command successful
500 QUOTE not understood」
となっていました。
コマンドプロンプトでFTP接続してHELPを見たら
ftp> help
quoteがありました。
ftp> quote help
SITEがありました。
ftp> quote site help
CHMODがありました。
全て*は付いていないので使用できるコマンドだと思います。
エラーの内容はQUOTEコマンドなんて知らないって言われているのでしょうが、
ヘルプで見ると実行できそうです。
FtpCommandからQUOTE SITE CHMODはできないのでしょうか?
【確認3】
そこで下記のようにQUOTEを外して実行したところ
strCmd = "site chmod 777 temp.txt"
lRtn = FtpCommand(hConnection, 1, FTP_TRANSFER_TYPE_ASCII, sCmd, 0, hResponse)
「Error 0: 200 Type set to A
200 PORT command successful
200 SITE CHMOD command successful」
となっていました。
ただし、下記のFtpCommandの実行は5分くらい帰ってきませんでした。
FtpCommandが成功した場合はそんなに時間がかかるのでしょうか?
「200 SITE CHMOD command successful」があれば成功と判断して宜しいのでしょうか?
お忙しいところ申し訳ありませんが、
何卒宜しくお願いします。
長文ですいません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Vba Userformを前面に出すについて 3 2022/04/15 12:29
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) VBA リボンののリカバリーでオーバーフローエラーになります 2 2023/07/04 19:07
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Web Diary Professional設置後...
-
FTPにて553エラー
-
EXCELファイルに誰がアクセスし...
-
《エクセルVBA》「他の人が該当...
-
ASPからJavaScriptへの受け渡し...
-
ラジオボタンのグループ化
-
MP Form Mail CGI で 500サーバ...
-
iframeの中から、親frameのURL...
-
perl 矢印演算子 -> の使い方
-
VBScriptで、ファイルから任意...
-
VBAでサーバーにアクセスするに...
-
CGIでソースがそのままでてしま...
-
URLに~/cgi-bin/~を隠す方法
-
掲示板のスレッドが消えた!?
-
コアサーバー(coreserver)でのc...
-
SFTPなどは使わないホームペー...
-
ホームページ作成 cgi? java?
-
cgiでファイルダウンロード時の...
-
自社サーバー異常発生。CGIがポ...
-
http://tydsu.com/oeder と後ろ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
FTPにて553エラー
-
ftpでuploadのとき上書きとする...
-
Dreamweaverでのパーミッション...
-
ロリポップでCGIを設置する
-
ローカルではうまくいってたの...
-
ロリポップでCGIエラー500苦戦中
-
FFFTPソフトのパーミション変更...
-
Perlの日記プログラムがIIS+Act...
-
VB6 FTPファイルのパーミッショ...
-
PostMail パーミッションについて
-
jcode.pl のパーミッション
-
cgiからファイルの書き込みがで...
-
cronでtxt、datなどのファイル...
-
EXCELファイルに誰がアクセスし...
-
《エクセルVBA》「他の人が該当...
-
SFTPなどは使わないホームペー...
-
VBAでサーバーにアクセスするに...
-
URLに~/cgi-bin/~を隠す方法
-
ラジオボタンのグループ化
-
ASPから既存のexcelブックを開...
おすすめ情報