2016-05-08 9 views
1

私は初心者です。 ファイルにテキストを作成して保存するためのStreamWriterオブジェクトを作成しました。 書き込みは次のようになります:私はStreamWriterで作成したファイルを参照してください。 C#

StreamWriter two = new StreamWriter(@"C:\two.txt", true); 
two.WriteLine("Some Stuff"); 
two.Close(); 

そして、プログラムは、コンソール上のファイルの内容を示しているので、私はまた、StreamReaderオブジェクトを追加しました:

StreamReader two2 = new StreamReader(@"C:\two.txt");               
Console.WriteLine(two.ReadToEnd()); 
two2.Close(); 

私はプログラムを実行するたびに、コンソール上の出力が正しく、WriteLineメソッドのテキストが追加されます。しかし、WindowsのファイルエクスプローラでC:にアクセスした場合、ファイルtwo.txtは存在しません。

ファイルはどこですか?

P.S.私がファイルを保存したいアドレスを変更した場合、例えばE:と言うと、すべてが完璧に動作し、WindowsファイルエクスプローラでE:でファイルを見ることができます。 C言語には特別なものがあります。

+1

cドライブの場合セキュリティ上の制限がありますので、ファイルsvingのためにユーザーAppDataフォルダを使用することをお勧めします。 – Mostafiz

+0

書き込みファイルを閉じる前に常にFlush()メソッドを使用してください。 – jdweng

+0

私はむしろ、ストリームや読者などのIDisposableリソースを常に 'using'ステートメントにラップしています。 –

答えて

-1

Windows検索で検索したところ、その答えが見つかりました。

ファイルはC:\ Users \ UserName \ AppData \ Local \ VirtualStoreにあります。 私はいくつかの通知を期待したいと思いますが、おそらく、これが起こったと私に伝える何か例外があります。

+0

さて、この問題は、宗教や学区に関する議論のようなものです。より新しいOSのセキュリティのために例外を投げ、古いアプリケーションを壊す。はい、再配置されているかどうかを知ることは "いい"でしょうが、他のアプリケーションとやりとりするまではそれほど問題にはなりません。読む価値があります:https://msdn.microsoft.com/en-us/library/3ak841sy(v=vs.110).aspx –

+0

また、あなたのアプリケーションでそれを探していなければならない場合は、上記のパスをハードコードしてください。 Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)関数を使用して環境変数を取得します。各システムは異なる可能性があり、確かに異なるユーザーを持ちます。 –

関連する問題