C#相对路径不是从工作目录开始

米勒

我有一个C#程序,它将从相对路径读取文件./report/report1.rdlc,但是由于未知原因,有时它从完全不同的位置找到了文件,C:\Windows\system32\report\report1.rdlc但实际上文件位于其中C:\Program Files (x86)\Application1\report\report1.rdlc,程序位于其中C:\Program Files (x86)\Application1\任何原因相对路径不是从工作目录开始的?

元冒号

它确实从工作目录开始。但是,您不应使用工作目录,因为如果执行特定的IO任务(例如,有时打开文件对话框或(显然)Directory.SetCurrentDirectory方法),则工作目录可能会有所不同相反,您应该使用该AppDomain.CurrentDomain.BaseDirectory属性来获取程序集文件所在的路径。您可以这样使用:

var relativePath = Path.Combine ("report", "report1.rdlc");
var baseDirectory = AppDomain.CurrentDomain.BaseDirectory;
var absolutePath = Path.Combine (baseDirectory, absolutePath);

现在,您应该使用和absolutePath访问文件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章