exeのあるフォルダにテキストファイルを生成するには?

解決


maruku  2006-09-19 05:44:02  No: 133302

VisualBasic2005ExpressEditionを使用しています。

フォームにtextboxとOpenFiledialogとbuttonを配置し、
OpenFiledialogで選択したファイルがtextboxに表示されるようになっています。
buttonを押すと、

My.Computer.FileSystem.WriteAllText("./test.txt", OpenFileDialog1.FileName, False)

が動作するようにし、exeのあるフォルダにtest.txtを作り
中に選択したファイルのパスが書き込みされるようにしたいのですが、
exeのあるフォルダではなく選択したファイルのディレクトリにtest.txtが作成されてしまっているようです。
おそらく、./ という相対パスの書き方が問題なのだと思うのですが、
自分自身(exe)のパスを表記するにはどうしたらよいのでしょうか。


ヤマ@文系  2006-09-19 05:54:58  No: 133303

FileSystem.CurrentDirectory
でいいと思います。


maruku  2006-09-19 06:07:14  No: 133304

My.Computer.FileSystem.WriteAllText(My.Computer.FileSystem.CurrentDirectory+"\"+"test.txt", OpenFileDialog1.FileName, False)

ヤマ@文系さんの情報を頼りに、このような文法に変更をすると見事にうまくいきました。
以上の方法のように、最後のディレクトリ名のあとに¥を入れないとtest.txtと名前が合体してしまうのですね。
勉強になりました。

素早いご対応、ありがとうございます。


Blue  2006-09-19 08:40:43  No: 133305

> 後のディレクトリ名のあとに¥を入れないとtest.txtと名前が合体してしまうのですね。
こういうときは、System.IO.PathクラスにCombineメソッドがありますのでこちらをなるべく使ったほうがいいですね。
(Path.PathSeparatorを意識しなくていいし)
http://jeanne.wankuma.com/tips/path/combine.html


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加