[リストへもどる]
一括表示

投稿時間:2004/02/02(Mon) 09:58
投稿者名:SIN
Eメール:sin1113jp@yahoo.cp.jp
URL :
タイトル:
FTPサーバへのファイル移動について
いつもお世話になっております。

VBからの操作でファイルの移動を

FILE1="\\Nmgsv003\PDF\PDFCHANGE\RIO.pdf"
FILE2="ftp://ftp.****.co.jp/****/RIO.pdf"
Name FILE1 As FILE2

で行っているのですが
FTPサーバへのファイル移動がうまくいきません。
(マウスでドラッグ&ドロップすれば移動できるのでログインはされているはずなのですが・・・)
FILE2の記述の仕方がいけないのでしょうか?
それともVBでのログイン操作が必要なのでしょうか?

投稿時間:2004/02/02(Mon) 10:35
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re: FTPサーバへのファイル移動について
> FILE1="\\Nmgsv003\PDF\PDFCHANGE\RIO.pdf"
> FILE2="ftp://ftp.****.co.jp/****/RIO.pdf"
> Name FILE1 As FILE2

Nameステートメントは、FTPには対応していません。
替わりに、Inetコントロールを使うようにしてください。

# もしくは、Shell ObjectのCopyHereメソッドで。

投稿時間:2004/02/02(Mon) 15:56
投稿者名:SIN
Eメール:sin1113jp@yahoo.cp.jp
URL :
タイトル:
Re^2: FTPサーバへのファイル移動について
魔界の仮面弁士さんありがとうございます。

> Nameステートメントは、FTPには対応していません。
> 替わりに、Inetコントロールを使うようにしてください。
inetを使い次のように組んでみましたが
うまく作動しません。

    Inet1.URL = "ftp://ftp.****.co.jp"     ' FTPアドレスを指定"
    Inet1.UserName = ""  
    Inet1.Password = ""  
    Inet1.Protocol = icFTP    
    Inet1.Execute , "CD /***/***/*****" ' ディレクトリの変更
    Inet1.Execute , "PUT \\Nmgsv003\PDF\PDFCHANGE\RIO.pdf /RIO.pdf"

どこか間違いがあるのでしょうか?

投稿時間:2004/02/02(Mon) 16:51
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re^3: FTPサーバへのファイル移動について
まず、ファイルのパスは正しいですか?

>     Inet1.Execute , "CD /***/***/*****" ' ディレクトリの変更
これで、
  ftp://ftp.****.co.jp/***/***/*****/
に移動しているようですが、その後で、フォルダ位置を
>     Inet1.Execute , "PUT \\Nmgsv003\PDF\PDFCHANGE\RIO.pdf /RIO.pdf"
のように指定しているため、結果として
  ftp://ftp.****.co.jp/***/***/*****/RIO.pdf
ではなく、
  ftp://ftp.****.co.jp/RIO.pdf
へのアップロードを試みている事になりますが、それで良いのでしょうか?


それと、これだけでは「コピー」(ローカルファイルをFTPサーバにアップロード)しているだけで、
ファイルを「移動」した事にはならないのではないかと。
(アップロード後にローカルファイルを削除すれば、[移動]に近い動きになりますね)

投稿時間:2004/02/03(Tue) 15:13
投稿者名:SIN
Eメール:sin1113jp@yahoo.cp.jp
URL :
タイトル:
Re^4: FTPサーバへのファイル移動について
返事が遅くなり申し訳ありません。

> まず、ファイルのパスは正しいですか?

パスは何度も確認してやってみたのですが
なかなかうまく作動しません。

初歩的な質問で申し訳ありませんが
Inetは使う前に何か宣言がいるのでしょうか?

> それと、これだけでは「コピー」(ローカルファイルをFTPサーバにアップロード)しているだけで、
> ファイルを「移動」した事にはならないのではないかと。
> (アップロード後にローカルファイルを削除すれば、[移動]に近い動きになりますね)

そうですね、実行した後に削除したいと思います。

投稿時間:2004/02/03(Tue) 16:33
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re^5: FTPサーバへのファイル移動について
> パスは何度も確認してやってみたのですが

実際には、ローカルのどこにあるファイルを、
サーバのどこのパスにアップロードしたいのでしょうか?

No.7813で、私の方から

》   ftp://ftp.****.co.jp/***/***/*****/RIO.pdf
》 ではなく、
》   ftp://ftp.****.co.jp/RIO.pdf
》 へのアップロードを試みている事になりますが、それで良いのでしょうか?

という逆質問をしましたよね。

実際には、どちらのパスにアップロードさせたいのでしょうか。
(それとも、どちらのパスも望むべきパスではないのでしょうか?)


> なかなかうまく作動しません。

Executeメソッドの処理は「非同期」で実行される事になります。
つまり、通信が完了するのを待たず、次の行が続けて実行される仕様です。
(しかし、前回のExecuteでの通信が完了するまで、次のExecute処理は行えません)

ヘルプのStateChangedの例などを参考にして、通信の完了を調べるためのコードを
記述して見てください。もし、そうしたコードを書いているにも関わらず、
『なかなかうまく作動しない』という事であれば、通信後のResponseCodeプロパティや
ResponseInfoプロパティの内容を教えてください。また、エラーが出ているようであれば、
そのメッセージ内容についても教えてください。

投稿時間:2004/02/03(Tue) 16:54
投稿者名:SIN
Eメール:sin1113jp@yahoo.cp.jp
URL :
タイトル:
Re^6: FTPサーバへのファイル移動について
魔界の仮面弁士さん ありがとうございます。

> 実際には、ローカルのどこにあるファイルを、
> サーバのどこのパスにアップロードしたいのでしょうか?

すみません移したいフォルダは
ftp://ftp.****.co.jp/***/***/*****/RIO.pdf
です。
申し訳ございませんでした。

実際のエラーも
    
Inet1.Execute , "PUT \\Nmgsv003\PDF\PDFCHANGE\RIO.pdf /RIO.pdf"

の/RIO.pdfに"/"がついていたからだと判明しました。

しかし無事ファイルの移動は
成功したのですが、

AAA=\\Nmgsv003\PDF\PDFCHANGE\RIO.pdf
BBB=RIO.pdf

Inet1.Execute , "PUT AAA BBB"

と変数に置き換えて実行するとそのまま"AAA"と読まれてうまくいきません。
この場合は変数は使えないのでしょうか?

投稿時間:2004/02/03(Tue) 17:27
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re^7: FTPサーバへのファイル移動について
> AAA=\\Nmgsv003\PDF\PDFCHANGE\RIO.pdf
> BBB=RIO.pdf
正しくは、
  AAA = "\\Nmgsv003\PDF\PDFCHANGE\RIO.pdf"
  BBB = "RIO.pdf"
となるのでは。


> Inet1.Execute , "PUT AAA BBB"
> と変数に置き換えて実行するとそのまま"AAA"と読まれてうまくいきません。

ヒント。下記を実行してみてください。

  MsgBox AAA
  MsgBox "AAA"
  MsgBox AAA & "BBB"
  MsgBox "AAA & BBB"
  MsgBox AAA & BBB

投稿時間:2004/02/04(Wed) 08:22
投稿者名:SIN
Eメール:sin1113jp@yahoo.cp.jp
URL :
タイトル:
Re^8: FTPサーバへのファイル移動について
おはようございます。

  AAA = "\\Nmgsv003\PDF\PDFCHANGE\RIO.pdf"
  BBB = "RIO.pdf"
変数には上のように入れたのですがやっぱり使えないようです。
自分の技術が足りないのですが。
変数を使うのは諦めたほうがいいのでしょうか・・・