在读取或者写入文件时,需要知道文件的路径,这些文件路径怎么设置呢?
首先要分清绝对路径和相对路径
一般打开文件夹,显示的如下:C:\Program Files;
判断该文件存不存在的代码:Directory.Exists(@”C:\Program Files”);
其中@是转义字符,相当于“\”,所以也可以写成:Directory.Exists(“C:\Program Files”);
当然,上面是绝对路径,我们可以设置默认的打开路径为绝对路径:
OpenFileDialog ofg = new OpenFileDialog();
ofg.InitialDirectory = @"C:\Program Files";
也可以设置为相对路径,也就是可以变的路径:
OpenFileDialog ofg = new OpenFileDialog();
ofg.InitialDirectory = System.Windows.Forms.Application.StartupPath;//获取程序启动路径,也就是exe文所在的文件夹
相对路径还有一种方式:
OpenFileDialog ofg = new OpenFileDialog();
string baseDirectory = AppDomain.CurrentDomain.BaseDirectory;
ofg.InitialDirectory =baseDirectory.Substring(0,baseDirectory.Lenth -1 );
//ofg.InitialDirectory =baseDirectory.Remove(baseDirectory.Lenth -1,1 );
可以看到,如果用AppDomain.CurrentDomain.BaseDirectory会比Application.StartupPath多一条反斜杠,所以需要去掉,但是现实中看情况用,因为Application.StartupPath只能用于WinForm窗体中。
如果获取了文件之后,也可以操作路径;
if (ofg.ShowDialog() == DialogResult.OK)
{
string path = ofg.FileName.ToString();//获取文件的路径加名称
MessageBox.Show("打开的文件路径是:" + path);
string a = System.IO.Path.GetDirectoryName(ofg.FileName);//获取文件的路径
string b = System.IO.Path.GetFileNameWithoutExtension(ofg.FileName) + ".txt";//获取文件的名称,可以自己加后缀
}
C/C++中的路径
另外顺便提一下C++中的路径
也可以分为相对路径和绝对路径
相对路径用正斜杠“/” ./ 表示相对路径 ../ 表示当前路径的上一级路径 ../../表示当前路径上上一级路径,依此类推。 向下就 ./test。 ./test/xxxx 看情况而定。
绝对路径就跟C#一样,C:\Programs
当然,都要用反斜杠表示转义字符,所以绝对字符要写:”C:\Programs”
而相对字符不受转义字符限制: “C/Programs”
如果有一个当前路径C:\Programs\file.相对路径可以写为:
“./x.txt” 表示C:\Programs\file\x.txt.