views:

88

answers:

5

I want to persist some data into a text file in my c# application. I added the text file to the root of my project.

How do i access it now? Will this file be embedded with my exe or what?

+2  A: 
  1. You need to set the file to copy to output directory.
  2. You can access the path relatively ("file.txt", or ".file.txt")

It will not be embedded with your exe.

Read this for help on opening a file.

Nix
A: 

It will be in the same directory as your exe by default, you can also provide a specific path where it can be dropped to via the construct of your StreamWriter or w/e class you are using.

Jesus Ramos
+4  A: 

First, make sure that you right click the file and select "Copy to Output Directory".

Second, the file will not be embedded inside of your Executable. It will be a normal *.txt file alongside your *.exe and you would access it as such:

StreamWriter sw = null;
FileInfo fi = new FileInfo(Path.Combine(Application.StartupPath, "filename.txt"));

if(fi.Exists)
    sw = new StreamWriter(fi.Open(FileMode.Open));
Justin Niessner
Please use `Path.Combine` here.
Steven Sudit
And you might want to show `OpenText`, instead.
Steven Sudit
@Steven Sudit - Updated to use Path.Comine. I'm sticking with Open so he can use it to Read/Write as needed.
Justin Niessner
For a snippet of code without context, this is sufficiently clear.
Steven Sudit
A: 

It sounds like your text file will contain "settings" for your application, and if you want to embed these settings then just use the actual Settings built into the project. Properties>Settings. MSDN: Settings

myermian
Can you write to the settings file?
whydna
That goes counter to wanting it to be embedded. You either want to be able to alter it after the code is compiled, or you want it to be embedded (part of your application code).
myermian
@whydna: Application-wide settings are stored in your app.config, which you do not want to write to programmatically.
Steven Sudit
A: 

There's also the excellent Nini project (http://nini.sourceforge.net/manual.php) which makes it easy to access (and write) simple settings files of various flavors and to optionally combine them with command line parameters.

Hightechrider