c#中有关文件的路径问题

来源:百度知道 编辑:UC知道 时间:2024/06/14 14:13:54
例如当前工作目录下有个Data目录下一个001.xls文件。我获取当前路径是CurrPath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase);
sourcefile=CurrPath+"/Data/001.xls"
这时用workbook = excelApp.Workbooks.Open(sourceFileName
, Type.Missing, Type.Missing, 。。。
正常。
但是用System.IO.File.Exists(sourceFileName)总是false.
这是为什么呢?
sourceFileName = System.Windows.Forms.Application.StartupPath+"/Data/001.xls";和
sourceFileName = System.Windows.Forms.Application.StartupPath+"\\Data\\001.xls";这两个判断System.IO.File.Exists(sourceFileName)和excel打开都正常了。excel打开难道真的只能用全路径?不能相对路径吗?能的话怎么写?但是忘记在什么情况的时候Application.StartupPath又不正常了。真奇怪

可以用相对路径,比如和程序文件在同一个文件夹下,文件名为1.txt
就写
string s="1.txt"

不行吧?
你那个
System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase);
输出的时候前面有"file:\\"
有这个肯定就false了···

用OpenFileDialog打开一次文件后当前进程的StartPath环境变量就不是exe的目录了...