VisualBasic2005ExpressEditionを使用しています。
フォームにtextboxとOpenFiledialogとbuttonを配置し、
OpenFiledialogで選択したファイルがtextboxに表示されるようになっています。
buttonを押すと、
My.Computer.FileSystem.WriteAllText("./test.txt", OpenFileDialog1.FileName, False)
が動作するようにし、exeのあるフォルダにtest.txtを作り
中に選択したファイルのパスが書き込みされるようにしたいのですが、
exeのあるフォルダではなく選択したファイルのディレクトリにtest.txtが作成されてしまっているようです。
おそらく、./ という相対パスの書き方が問題なのだと思うのですが、
自分自身(exe)のパスを表記するにはどうしたらよいのでしょうか。
FileSystem.CurrentDirectory
でいいと思います。
My.Computer.FileSystem.WriteAllText(My.Computer.FileSystem.CurrentDirectory+"\"+"test.txt", OpenFileDialog1.FileName, False)
ヤマ@文系さんの情報を頼りに、このような文法に変更をすると見事にうまくいきました。
以上の方法のように、最後のディレクトリ名のあとに¥を入れないとtest.txtと名前が合体してしまうのですね。
勉強になりました。
素早いご対応、ありがとうございます。
> 後のディレクトリ名のあとに¥を入れないとtest.txtと名前が合体してしまうのですね。
こういうときは、System.IO.PathクラスにCombineメソッドがありますのでこちらをなるべく使ったほうがいいですね。
(Path.PathSeparatorを意識しなくていいし)
http://jeanne.wankuma.com/tips/path/combine.html
ツイート | ![]() |