VisualBasic2005Professionalで勉強中です。次のような処理をしようとしています。(1) System.IO.File.Create("c:\temp.txt")=ファイルを作る。(2) FileCopy("c:\temp.txt","c:\temp2.txt")=そのファイルを他の場所へコピーする。(1)は成功するのですが、(2)において、次のようなエラーが出ます。「別のプロセスで使用されているため、プロセスはファイル 'c:\temp.txt' にアクセスできません。」デバッグ中に、エラーが出たままにしてそのtemp.txtファイルを普通に開こうとしてみると、確かに開けません。また、FileCopyの代わりにSystem.IO.File.Copyを使用しても同じ結果でした。なぜでしょうか? File.Createの挙動がポイントであるような気がするのですが、よくわかりません。解説をお願いできればと思います。

回答の条件
  • 1人2回まで
  • 登録:2006/05/19 03:23:02
  • 終了:2006/05/22 00:26:01

回答(4件)

id:Robe No.1

ロベール回答回数11ベストアンサー獲得回数02006/05/19 03:31:36

ポイント74pt

(1) の後にファイルを閉じてないからだと思います。

System.IO.File.Create の戻り値(System.IO.FileStream 型)を使って

Close すると大丈夫だと思います。

http://jeanne.wankuma.com/tips/file/create.html

id:yuuboku No.2

yuuboku回答回数19ベストアンサー獲得回数22006/05/19 03:34:26

ポイント75pt

http://jeanne.wankuma.com/tips/file/create.html

VB.NETでのファイルの作成の解説です。

こちらにはVB.NETの開発環境が無いため動作確認はしていませんが、開いたファイルは閉じるのがお約束なので、サンプルのように閉じる処理を加えれてあげればいいと思います。

id:taknt No.4

きゃづみぃ回答回数13539ベストアンサー獲得回数11982006/05/19 09:55:34

ポイント79pt

http://jeanne.wankuma.com/tips/file/create.html

作成したファイルは、クローズしないとダメです。

開いたままの状態では コピーも移動も削除もできません。

id:crashtruck

失礼ですが、一度に返信させていただきます。皆様ありがとうございました。とっても初歩的な質問でした。勉強いたします。

2006/05/22 00:25:31

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません