ファイルのコピー(VBにて)

このQ&Aのポイント
  • VB6.0sp5を使用して、Windows2000Proでファイルのコピーを行う方法について質問です。
  • 元ファイルと同じ名前のファイルがコピー先に存在する場合、上書きする条件と、アクセス中のファイルは他からアクセスされる可能性があり、アクセス中は更新されなくても問題ないかについて考慮しています。
  • 初歩的な質問ですが、VBにおけるファイルのコピー方法について教えていただけますか?
回答を見る
  • ベストアンサー

ファイルのコピー(VBにて)

OS:windows2000pro VB:VB6.0sp5 元ファイル場所:"C:\work_from\データ050512.csv 元ファイル  :"データ050512.csv" コピー先場所:"C:\work_to 条件1.コピー先に元ファイルと     同じ名前のファイルが存在する場合      →上書きとする 条件2.コピー先に元ファイルと     同じ名前のファイルが存在し     ファイルがアクセス中(開かれている状態)の場合      →コピー先のファイルは、       他からアクセスされる可能性が有       これを考慮して下さい。       アクセス中のファイルはアクセス中は更新(コピー)       されなくても問題ないかと考えています 以上、初歩的なご質問で申し訳御座いません。 よろしくお願いいたします

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

  • ベストアンサー
  • JeanneNet
  • ベストアンサー率48% (100/208)
回答No.1

こんにちは、じゃんぬねっと と申します。 > コピー先のファイルは、他からアクセスされる可能性が有 > これを考慮して下さい。 ちょっと意味がわかりません... > アクセス中のファイルはアクセス中は更新(コピー) > されなくても問題ないかと考えています ロックされてなければコピーされちゃうんでしょうが、 それはされなくて「問題ない」のではなく、しちゃまずいのでは? で、結局、何がお聞きになりたいんでしょ? (^^) ファイルのコピーの仕方ですか? http://www.google.co.jp/search?hl=ja&c2coff=1&q=VB+%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E3%82%B3%E3%83%94%E3%83%BC&lr=

g000000000000
質問者

お礼

ありがとうございました ご教示頂戴いたしました内容にていたしましたところ 上手くいきました

その他の回答 (1)

回答No.2

No1の方と同じく結局は何が問題で何を知りたいのかが判りづらいのですが・・ 条件1.ファイルコピーを実行すると、同じ名前のファイルがあっても上書きコピーされます。 条件2.コピー先のファイルがアクセス中であるかどうかというより、ロックされているかどうかが問題です。 例えば、CSVファイルをExcelで開いていたら、ロックされているので、コピーしようとするとエラーが発生します。 しかしメモ帳で開いていると編集中でもロックされていないため、上書きコピーされてしまいます。 これらの動作はエクスプローラ上で上書きコピーをしてみたら、確認できると思います。 バッチ処理などで複数のファイルをコピーしようとした場合は、コピー先のファイルがロックされていてコピーできなかった場合、エラーで処理が中断されないような工夫が必要です。 コピー先のファイルがアクセス中でも、ロックされていない場合の判定方法はわかりません。

関連するQ&A

  • VB6で特定のファイルを閉じたい

    VB6ですでに存在しているcsvファイルに書き込みをするプログラムを作っているのですが、 書き込みしたいcsvファイルが開いているとエラーになって書き込みができません。 なので、「書き込みしたいファイルが開いているか判定」して、 「開いている場合は閉じたい」のですが、どうすれば良いでしょうか? 開いているファイルはVB6で開いたのではなくて、ユーザーが開いたファイルになります。

  • ワークシートを別ファイルにコピー出来ない

    エクセル2010です。 コピー元ファイルを開き、ファイルメニュー→新規→空白のブック により新ファイルを開き、コピー先ファイルとして名前を付けて保存、 コピー元ワークシートを選択しシートコピーしようとすると、以下のエラー表示があります。 文面忘れましたが、 コピー元とコピー先でワークシートの行列数が異なるため、コピー出来ない。ワークシートでなくデータを選択し、コピー&ペーストせよ。 ちなみに、作成したコピー先ファイルを一旦閉じて再度開くと、何故か普通にワークシートコピー出来ます。 メッセージに従うとセル幅や印刷範囲の設定がコピーされないので、やりたくありません。 普通にシートコピーしたいのです。一旦閉じて再度開くなどという動作は回避出来ないのでしょうか?

  • ファイルにアクセスしている人(初心者です)

    Windowsのコマンドで、ファイルのコピーをしています。 copy TEST1.csv c:\work\テスト というコマンドでコピーをしています。 この状況で、誰かが「c:\work\テスト\TEST1.csv」のファイルを 開いている場合はコピーしないのですが、 誰が開いていたかの情報だけ取得したいのです。 このファイルは共有ファイルです。 コマンドを使って、誰がファイルにアクセスしているのか 分かる仕組みはあるのでしょうか? 調べてみたのですが、分からないので教えてください。 よろしくお願い致します。 情報が足りなければ補足します。

  • バッチでファイルのコピーを行いたい

    バッチを利用してファイルのコピーを実施しようとしておりまあす あるフォルダ内にあるファイルをすべて別のフォルダに移動したいのですが、 このとき、 ・コピー対象のファイルは、MAXで11ファイル(cpfile1.csv-cpfile11.csv)ですが、すべて存在するとは限らない ・コピーに失敗したファイルは、あと2回コピーのリトライをする (MAX3回コピーを実施する) ・途中でコピーが失敗したファイルがあったとしても、フォルダ内のすべてのファイルに対してコピーを行う copy /Y c:A\cp_from\*.csv c:A\cp_to\*.csv で行おうとしたのですがこの場合、2回のリトライを行う方法が不明でした for文を利用して行うべきなのでしょうか? またその時にはどのように書けばよいのでしょうか> お分かりになられる方がおりましたら、ご教授お願いいたします

  • バッチファイル 別ファイルにリストしてあるファイルをコピーしたい

    バッチファイルで、ファイル名前をリストしてあるの別ファイルを参照して、リストの名前のファイルを任意のフォルダにコピーしたいです。 ●条件 ・コピー元/コピー先は固定でよいです。 ・できれば、コピー元のサブフォルダのファイルも対象にしたいです。 (この場合、リストにもxxx\○○○.txt のように記述) 「for」コマンドを使うのでしょうか? 宜しくお願いいたします。

  • VB6「コピー中のファイルをオープンしてinput #はするか?

    VB6 WinXP等 ですが、(おそらくOSが)コピーしているファイルに対して(コピー先のファイル)をOPENしてinput #はするか(しないか)どうか疑問なのですが。当然、コピー先のファイルはコピー中なら不完全なので、OPENしてinput してしまうと不都合が生じるので。別のプロセスで開かれている場合はエラーが出るというですが・・・。大きなテキストファイルを作って自力でテストする必要があるでしょうか?OSの仕様に詳しいかたよろしくおねがいいたします。

  • ファイルのコピー

    xcopy コマンドを用いて c:\work フォルダ内に  data_backup.1,data_backup.2,~data_backup.31 と data_backup.日付 のファイルがあります これを d:\keep フォルダに本日のファイルのみをコピーする  例 03/11/28の場合、data_backup.28 バッチファイルを教えてください

  • バッチファイル(コピーファイルが0件のときDOSの画面を閉じたい)

    サーバーにバックアップするファイルをコピーしてコピー後削除するようにバッチファイルを作ってみたのですが コピーファイルがない場合そのまま閉じたいのですが どうしたらよいでしょう?初めて作ったので書き方がおかしいかもしれませんが見ていただけませんか? @ECHO OFF REM e-秘伝返信データのバックアップ処理 COPY C:\Kchdn\返信データ*.csv \\SVRMT003\ASBbackup\e-飛伝返信ファイル DEL C:\Kchdn\返信データ*.csv

  • CSVファイルやTSVファイルの使い方

    あるデータ(規則性のある)をCSVやTSVに変換するにはどのようにしたらよいのでしょう。それをエクセルやアクセスに流し込むには? オフィス製品ならコピー&ペーストで出来ますよね。又、エクセル、アクセスで作ったデータをCSVやTSVにするには、保存する時にファイルの種類を選んで名前を付けて保存以外に何か方法はあるでしょうか。

  • VBでCSVファイルを取り込み、Accessに格納する方法

    VBから、csvファイルを取り込んで、Accessのテーブルに格納したいので すが、Input# でうまくいきません。 csvファイルは、基本的に,区切りですが 1)値の両端を"でくくる。 2)値として"がある場合は、""に変換する。 という仕様です。(ExcelでCSVファイルを作るときと同じ) 3)先頭13列が、上記のような仕様   さらに14列目から290列目までは数値データで、値を""でくくらない。 データ例として、 "aaa","""値""",""",,","""値2,,""","bbb",・・・"ccc",0,1,2,・・・,276 === ====== ==== ========== === === = = = ===  1 2 3 4 5 13 141516 290 1の値:aaa 2の値:"値"," 3の値:",, 4の値:"値2,," 5の値:bbb としてテーブルに取り込みたいです。 Access2000では、255列以上は取り込めないため、 14列目以降の値を9個ずつ別レコードに分けています。 つまり、22列のテーブルにレコード化しています。 レコード1:列1~13の値+列14~22の値 レコード2:列1~13の値+列23~31の値 ・・・ 255列の制限は仕方ないとしても、上記のようなCSVファイルを VBでAccessテーブルに取り込む良い方法を教えてください。

専門家に質問してみよう