• ベストアンサー

Filecopyステートメントでエラー

今VB6SP5を用いてRAS接続で サーバーへファイルをコピーするプログラムを 作っています ファイルのコピー方法はFilecopyステートメントを使用 この時ファイルコピーでエラーになる事があるのですが 原因は何が考えられますか サーバはWindows 2000 SP4 クライアントも同様 Windows2000 SP4 以上です

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

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

>偶数回目は成功するのでファイル共有なのではと思っています たしかに偶数回目で成功するのであれば、そうかもしれないと思ったのですが、、、 以下の実験をしたところ、不安はまだ消えず。。。 FileCopyの仕様 FileCopy source, destination sourceに存在しないファイルを指定したとき エラー番号:53/ファイルが見つかりません。 sourceに排他されているファイルを指定したとき エラー番号:70/書き込みできません。 destinationが存在しない(参照できない)フォルダを指定したとき (フォルダ(共有フォルダ)を参照できないとき:これはセッション問題も含みます。) エラー番号:52/ファイル名または番号が不正です。 という結果を得ました・・・・ イメージ的にはsourceが不正なときに、53のエラーが出てほしかったんだけどなぁ・・・ そこでさらに実験願います。 ・圧縮ファイルを作成したあと、、、 ※その圧縮ファイルではなく、既存の別のファイルをネットワーク上のサーバにコピーできますか? ※その圧縮ファイルを、ローカルのマシンのどこかのフォルダにコピーできますか? この2点で、source側かdestination側のどちらに問題があるかがわかると思います。

noname#6726
質問者

お礼

回答ありがとうございます 1.別のファイルをネットワーク上にコピー   出来ました 2.ローカルマシンからローカルマシンへのコピー   出来ました。 以上が 実験結果です うーん何が違うのかわからなくなってきました

その他の回答 (4)

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

>10セッションまで・・・10人まで接続可能と考えてもいいのでしょうか いいえ違います。 台数ではなくセッション数です。 サーバ側で コントロールパネル→管理ツール→コンピュータの管理→共有フォルダ→セッション ここに出ているリストの数がセッションの数です。 だから一人で5セッションを張ることも可能です。 セッションであれば上記の通りですが、偶数・奇数回の実行で成功に差がでるのであれば、確かにファイル占有の関係かも知れませんね。 そちらのプログラムがどうなっているかがわかりませんが、推測で。。。 dim strFileLZH  as string strFileLZH = "C:\Test.lzh" If Not Func圧縮ファイル作成(strFileLZH) Then   MSGBOX "失敗"   '不正終了処理 End If If Not Funcファイルコピー(strFileLZH) Then   MSGBOX "失敗"   '不正終了処理 End If っていう感じだと思いますが。。。 これらの二つの処理の間に、、、 ※http://oshiete1.goo.ne.jp/kotaeru.php3?q=611232 の#2のIsNoOpen関数を入れた場合の戻り値 ※debug.print dir(strFileLZH) とした場合の戻り値 が知りたいです。 ってか、それ以上に「エラー番号」「エラーメッセージ内容」が知りたいです。

noname#6726
質問者

お礼

ご回答ありがとうございます 偶数回目は成功するのでファイル共有なのではと思っています IsNoOpen入れてみます エラー番号とメッセージは次の通りです エラー番号 52 メッセージ ファイル名またはファイル番号が無効です というメッセージです 以上です

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

もうひとつ思ったのが、 >サーバはWindows 2000 SP4 って「Windows 2000Server?」それとも「Windows 2000Pro?」 Proなら10セッション以上の要求は受け付けません。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=577185 の#8の回答

noname#6726
質問者

お礼

すいません、ProかServerか書いてありませんでした Windows 2000Proです 10セッションまでということは、どういうことでしょうか10人まで接続可能と考えてもいいのでしょうか それならば、今は1対1でデバッグしてますので 問題ないと思います

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

ファイルコピーの前で DoEvents でもだめ?

noname#6726
質問者

お礼

回答ありがとうございます Doeventsをやってもだめです

  • akiaki2
  • ベストアンサー率59% (16/27)
回答No.1

こんにちは >エラーになる事があるのですが うまくいく事もあるんですよね。 原因はわかりませんが、似たような現象を経験しました。 環境は違いますが、128kの専用線で結ばれた拠点のサーバへのfilecopyが不安定だった事があります。 この時は、サーバの共有フォルダをクライアント側にネットワークドライブとして割り当て、そこにコピーするようにしたら安定するようになりました。 filecopy ファイル \\サーバー名\共有フォルダ名 ↓ (例えばxドライブに共有フォルダを割り当てた後で) filecopy ファイル x:\ どうしてもダメならFTPですかね、、、

noname#6726
質問者

お礼

こんにちは 回答ありがとうございます ネットワークドライブをプログラムで設定してみましたが だめでした 同じエラーがでてしまいます。 コピーしようとしているファイルは .lzhの圧縮ファイルで、 1.圧縮はUnlha32.DLLを使ってVBより圧縮 2.その後ファイルコピーと言う手順です それで奇数回目はエラー、偶数貝目は正常にコピーできる と言うことから、DLLがLZHふぁいるをClose出来ていないのではないかという観点からも今考えています

関連するQ&A