1、C#相对路径
C#中用Application.StartupPath提取运行应用文件所在的路径
采用https://www.cnblogs.com/Alex1994/p/10734406.html方法(感谢提供)
C#相对路径
1、 根目录
.\ 或者直接给出文件名称,是找根目录的路径。
如:path = “gs.mdb” 与 path = ".\gs.mdb"是一个意思。
2、 根目录的上级目录, 在C#中是指定到bin文件夹里面
…\ 应用程序的根目录的上两级
3、指定到根目录上面的三级目录,也就是C#中与bin同一目录中
…\…\gs.mdb 这个意思是在根目录的三级目录的gs.mdb文件
如果在这级目录中你要指定到指定文件夹中的某个文件,应该这样: …\…\dir\gs.mdb意思在这个目录中的dir文件下面的gs.mdb文件。
4、指定到根目录的上四级目录,如下:
…\…\…\ 这样就指定到根目录的第四级目录了。
…\…\…\dir\gs.mdb 这样就指定到这个目录里面的dir这个文件夹里面的gs.mdb这个路径。
5、某个文件的相对路径
…\DbMVC\bin\gs.mdb
这种情况如:例如现在有几个文件夹dir 、 DbMVC、 fd,而应用程序现在在dir文件夹里面,那么这个路径的意思是指定在dir文件的上两级目录的DbMVC的bin中的gs.mdb的文件路径。
相对路径的表示方法为:例如:Application.StartupPath + “…\…\…\Resources\communication.txt”
2、C#txt文件读取与写入
方法1
FileStream stream = new FileStream(Application.StartupPath + "..\\..\\..\\Resources\\communication.txt", FileMode.Open);
StreamReader mStreamRead = new StreamReader(stream);
States2 = mStreamRead.ReadToEnd();
mStreamRead.Close();
stream.Close();
此方法直接读取,并不按行来读取,需要添加换行符{ “\r\n” };放入指定的数组中
string[] aaa = { "\r\n" };
string[] bbb = States2.Split(aaa, options: StringSplitOptions.RemoveEmptyEntries);
方法2
按行读取,直接生成一个数组
StreamReader mStreamRead = File.OpenText(Application.StartupPath + "\\Resources\\config.txt");
string[] iteams = File.ReadAllLines(Application.StartupPath + "\\Resources\\config.txt");
mStreamRead.Close();
3、以下是保存于读取
参数保存至txt文件
private void button1_Click(object sender, EventArgs e)
{
//读原来的数据防止被覆盖
FileStream savedatafile = new FileStream(Application.StartupPath + "\\Resources\\config.txt", FileMode.OpenOrCreate);
//StreamReader savedatafile = File.OpenText(Application.StartupPath + "\\Resources\\config.txt");//用这种方法也可以打开txt。
string[] iteams = File.ReadAllLines(Application.StartupPath + "\\Resources\\config.txt");//按行读取(读取一行)
States = iteams;
savedatafile.Close();
//保存之前将所有的控件状态写入
States[0] = comboBox1.Text;
States[1] = comboBox2.Text;
States[2] = comboBox3.Text;
States[3] = comboBox4.Text;
States[4] = comboBox5.Text;
States[5] = comboBox6.Text;
States[6] = comboBox7.Text;
States[7] = comboBox8.Text;
States[8] = comboBox9.Text;
States[9] = comboBox10.Text;
States[10] = comboBox11.Text;
States[11] = comboBox12.Text;
try
{
string mFileFullname = Application.StartupPath + "\\Resources\\config.txt";
StreamWriter mStreamWriter = new StreamWriter(mFileFullname, false, System.Text.Encoding.UTF8);
for (int i = 0; i < 100; i++)
{
mStreamWriter.WriteLine(States[i]);//文件按行写入
}
//用完StreamWriter的对象后一定要及时销毁
mStreamWriter.Close();
mStreamWriter.Dispose();
mStreamWriter = null;
MessageBox.Show("保存成功");
}
catch (Exception)
{
MessageBox.Show("保存失败");
}
}
另外值得查看的文件操作网址:https://www.cnblogs.com/akwwl/p/3240813.html