• 締切済み

program filesにファイルをコピーするとエラー

vbでprogram filesにファイルをコピーするとエラーが発生します。filecopy関数とFileSystemオブジェクトでもエラーが発生します。Win2000では上手くいきます。Win98では失敗します。何か違いがあるのでしょうか?

みんなの回答

  • techa
  • ベストアンサー率60% (41/68)
回答No.6

Windowsでは、Programとfilesの間にスペースがあるのがふつうだと思いますよ。 いずれにせよそれが原因ですね

  • techa
  • ベストアンサー率60% (41/68)
回答No.5

>コピー元ファイルの問題でしょう。 その可能性も否定できませんね。 どういう環境で使われているのか、実際のところ、詳細がわかりませんから。 ただ、 >コピー先に問題がある場合は違うエラーになるはずです。 というのは違うと思いますよ。 私も最初はそう思ったのですが、VB6では、どちらもおなじエラーになってしまいます。 >コピー元ファイルが存在しないとか。 >コピー元ファイルをopenしてcloseしていないとか。 そうですね。Dir関数ででフォルダもしくはファイルにアクセスできるとすれば、その可能性が高いですね。 何にせよ、2430326さんがどのようなソフトにしているかが重要ですね。 ためしに、新規にプロジェクトを作ってもらって、前述のソースで実行してもらうのがわかりやすいのですがね。

2430326
質問者

補足

Program filesのProgramとfilesのスペースを削除したところエラーがでませんでした。

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.4

>エラー内容は「実行時エラー57ファイルが見つかりません」です。 コピー元ファイルの問題でしょう。 コピー先に問題がある場合は違うエラーになるはずです。 コピー元ファイルが存在しないとか。 コピー元ファイルをopenしてcloseしていないとか。

  • techa
  • ベストアンサー率60% (41/68)
回答No.3

ためしにWin32APIを使ってみても、当方では同じ結果でした。 これでできないとなると、ファイル名が間違っているか、なにかぐらいしか思い当たらないのですが。 以下、ソースです。 Private Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long Private Sub Command1_Click() Dim s As String Dim d As String Dim x As String Dim ret As Long s = "c:\Sample.c" d = "c:\Program files\Sample.c" '' x = Dir(s) '' FileCopy s, d ret = CopyFile(s, d, False) '' 既存ファイルのオーバーライト End Sub

  • techa
  • ベストアンサー率60% (41/68)
回答No.2

このあたりの挙動は変わっているとはおもわないのですが、試しに、Dir関数でProgram Filesフォルダが取得できるかどうか、確認してください。 Dim d As String Dim rcv as String d = "c:\Program files" rcv = Dir(d) って感じかな?

  • techa
  • ベストアンサー率60% (41/68)
回答No.1

どのようにされたのかわかりませんが、当方ではちゃんと動作しているようですよ。 とりあえず、フォーム上にCommand1ボタンを1つはりつけて、以下のソースを記述しました。 c:\にSample.cというファイルをおいておきます。 これで実行すると、Program FilesのなかにSample.cが コピーされます。 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ Private Sub Command1_Click() Dim s As String Dim d As String s = "c:\Sample.c" d = "c:\Program files\Sample.c" FileCopy s, d End Sub ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ 環境的にはVisual Basic 6.0でテストしてあります。 動作確認はWindows2000とWindows98SEです。

2430326
質問者

補足

ご指摘どおりプログラムを作成し実行してみたのですが、 結果は同じでした。 環境的はVisual Basic 6.0です。 動作確認はWindows2000とWindows98SEです。 何台か98でテストしたのですが結果は同じでした。 エラー内容は「実行時エラー57ファイルが見つかりません」です。

関連するQ&A

  • Program Files (x86)内のファイルをコピーできない

    Program Files (x86)内にインストールしたソフト(雀譜)に保存されている 牌譜ファイルをコピーしようとしたところできません。 また、ソフト側からは牌譜ファイルになぜか黄色い鍵マークがついた状態で見えます。 エクスプローラーでProgram Files (x86)を直接除くと、牌譜ファイルは なぜか見えません。 どうやらソフト経由で保存したファイルは黄色い鍵マークがついているようです。 そして、エクスプローラーでは見えなくなるようです。コピーもできません。 どうなっているのでしょう? 鍵マークのファイル画像をアップしておきます。

  • Program Filesについて

    win7 Home Premium 64bitを使用しています。 C:\を見ると、 ・Program Files ・Program Files(x86) とふたつの「Program Files」があります。 私のパソコンは64bitなので、Program Filesが本物でしょうか? そもそもこの二つの違いはなんですか? (x86)は32bitと言う意味ですよね? ご回答よろしくお願いします。

  • Program Filesフォルダ

    win7 64bitです。 ソフトをインストールすると、 Program Filesフォルダに入ったり、 Program Files(x86)フォルダに入ったりするのですが この違いはなんでしょうか? 任意でインストール先を選択できる場合は、 どちらのファイルに入れたほうが良いですか?

  • program filesが二つ存在しています

    なぜか/cの下にprogram filesが二つあります。 この前高速化ツールのwin_acceleraterを使い、その後再起動した際にブルー画面でハードディスクのエラーのようなものが出てしまい、 強制終了の後に「前回正常起動時の状態で起動」(←間違っていたらすいません)で起動したら、 program filesのデータがすべて消えていました。 他の/c下のファイルはすべて無事でしたがなぜかprogram filesだけ しかし次の日に再び起動してみると、 なぜかprogram filesの中身が復活していたので、 すぐにwin_acceleraterの復元機能で以前チェックした項目を戻して /cを見るとprogram filesが二つに ちなみに二つのファイルの差は[p]が大文字か小文字かの違いだけで、 中身はすべて同じ、しかもどっちからでもアプリケーション等も正常に起動します。片方のファイルで、何か入れたり、何か消すともうひとつにも影響します。 自分のパソコンは XP Home Edition SP2 dellのinspiron1300 ハードディスクはcのみの60GB どなたかご教授お願いします。

  • ファイルは既に開かれています(Error55)について

    ある任意のパスにあるファイルの全てをある任意のパスへコピーする といったプログラムを作成しております。 ユーザーさんの環境で実行すると途中で実行時エラー:55ファイルは 既に開かれていますが発生してしまいます。 開発環境ではこのエラーの再現性が無く困っております。 (ちなみにユーザーさんのOSはNT4.0です) 中のプログラムはDo While・・・Loopでファイルがある間FileCopy ステートメントを実行しているのみです。 ファイルを開いてるわけでもありません。 こういったエラーに遭遇したことのあるという方、いらっしゃいましたら アドバイス宜しくお願い致します。 m(__)m

  • excelのファイルコピー

    excelvbaでファイルコピーをしようと思っています。 コピーは自分自身のファイルをコピーしようとしています。 ファイル1.xls(自分自身、コピー元) ファイル2.xls(コピーされたファイル) FileCopyを使用し以下のようにやろうとしましたが、書き込みエラーがでてうまくいきませんでした。 エラーメッセージ「実行時エラー '70': 書き込みできません。」 FileCopy "ファイル1.xls", "ファイル2.xls" どのようにすればうまくいくのでしょうか?

  • Program Files の削除について

     DELL のノートパソコン、Win 10を使っています。  OSのフォルダーの中にProgram Files と Program Files (x86) というフォルダー PC の購入して間もない頃に気付きました。それぞれには、ほぼ同じ名前のファイルが複数あります。中には一方だけにしかないファイルもあります。  この2つのフォルダーのうち Program Files を削除して、ハードディスクを軽くしたいのですが、削除をしても大丈夫でしょうか?もし大丈夫なら、Program Files から必要なファイルだけを Program Files (x86) に移動させた後で削除しようと考えています。削除の方法を教えてください。  情報不足であれば、再度お伝えいたします。  よろしくお願いいたします。

  • Downloaded Program Files

    インターネットオプションの全般タブにあるインターネット一時ファイルの設定オブジェクトの表示を押して出るDownloaded Program Filesって何なのでしょうか? 後、消してしまってもいいのでしょうか?

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

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

  • マクロファイルコピーで実行時エラー75

    Win10,office2010 マクロで FileCopy "C:\aaa\test.bat", "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\test.bat" を実行すると、 実行時エラー75 パス名が無効です というエラーが発生します。 win7のパソコンでは上記マクロで問題なく動作します。 何が問題なのでしょう? Win10でエクスプローラにてコピーすると 対象のフォルダへのアクセスが拒否されました このフォルダへコピーするには権限が必要です。 と表示されながらも”はい”をクリックでコピーは出来ます。 ログイン者はadmin権限です。 なお、 ユーザアカウント制御の設定 通知しない にしています。

専門家に質問してみよう