2012-04-27 15 views
0

私はVS2010でコンソールプログラムを作っています。ソリューションエクスプローラにレイアウトされた構造は、Projectファイル、Propertiesフォルダ、References、およびProgram.csです。Visual Studio Projectでテキストファイルを使用する

私は読み書きのためにテキストファイルを使いたいと思っています。このファイルをプロジェクトに追加する正しい方法は何ですか? StreamWriter sw = new StreamWriter("maze.txt")を実行すると、出力フォルダ(bin/debugまたはbin/release)にファイルが作成されます。しかし、それはソリューションエクスプローラに表示されません。

ソリューションエクスプローラを右クリックして新規アイテムを追加すると、ルートプロジェクトフォルダ(Program.csと同じレベル)にテキストファイルを作成できます。これはソリューションエクスプローラに表示されます。

この新しく作成されたファイルにアクセスする方法はありますか? 2つの親になるようにパスを指定することによってStreamWriter sw = new StreamWriter("../../maze.txt")のようなことをする以外の方法はありますか?

Visual Studioコンソールアプリケーションで外部ファイルを管理する方法を教えてください。 WinFormsアプリケーションには、これらのものを追加できるリソースフォルダとそれを管理するファイルResources.resxがあります。私はProperties.Resources.someresでアクセスできます。

答えて

4

デザイン時にファイルを作成してbinフォルダに含めたい場合は、テキストファイルを追加してプロパティに移動し、コピープロパティで「常にコピーする」または「新しい場合にコピーする」を選択します。

これはプロジェクトからbinフォルダにファイルをコピーしますが、デバッグ時のbinフォルダの変更はプロジェクト自体にコピーされないことに注意してください。私はあなたがプロジェクト自体のファイルのバージョンと対話することを望んでいません。このようなことをすると、いつでもVSの外部でプログラムを実行します(つまり、実際のユーザーのマシンにコピーすると機能しません)。

+0

よく私はbinフォルダにファイルをコピーすることができますが、私は 'StreamWriter(" ../../ maze.txt ")'のようなテキストファイルにアクセスするはずか、そのファイルが本当にプロジェクトの一部であるところの、 'StreamWriter(Properties.Resources.maze)'のようなより合理的な方法があれば。 – Jonas

+0

いいえ、プログラムの実行中に実際にプロジェクトの一部であるファイルにアクセスすべきではありません。プログラム自体は、bin/debugフォルダにあるファイルのコピーのみを変更する必要があります。 – Servy

1

リソースに関する質問については、引き続きリソースを使用できます。右クリックして "追加" - > "新規アイテム"(別名キーボードショートカットCtrl + Shift + A)を選択し、 "リソースファイル"を選択します。 set the text file to be an Embedded Resourceでもかまいません。 MSDNには、Managing Application Resources pageのリソースの使用に関する多くの情報があります。

+0

うーん、私はそれを試してみる。 – Jonas

1

リソースはコンソールアプリケーションに埋め込むことができます。私はこのテクニックをクイックアプリで使っていますので、インストーラやこれらの種類のファイルなどの依存関係を必要としません。このquestionは、同様のトピックについて説明します。

関連する問題