在C#中实现文件访问的最佳方式

时间:2008-10-24 19:33:11

标签: c# wcf file coding-style

场景 - 我需要访问HTML模板以从我的业务逻辑层生成电子邮件。它是一个类库,包含一个包含该文件的子文件夹。当我在单元测试中尝试以下代码时:

string FilePath = string.Format(@"{0}\templates\MyFile.htm", Environment.CurrentDirectory);
string FilePath1 = string.Format(@"{0}\templates\MyFile.htm", System.AppDomain.CurrentDomain.BaseDirectory);

它使用的是C:\ WINNT \ system32 \或ASP.NET临时文件夹目录。

在不使用app.config或web.config文件的情况下访问此文件的最佳方法是什么?

[这是使用WCF服务]

4 个答案:

答案 0 :(得分:6)

你是从ASP.Net应用程序运行的吗?请改用Server.MapPath()

另请查看System.IO.Path.Combine()连接路径。

[编辑] 由于您无法使用System.Web,请尝试以下操作:

System.Reflection.Assembly.GetExecutingAssembly().Location

GetEntryAssembly()

答案 1 :(得分:1)

我相信你在寻找

System.IO.Path.GetDirectoryName(Application.ExecutablePath);

答案 2 :(得分:1)

我在我的网站上工作了!在过去的两年里,我一直没有这么做!!!

我在web.config的system.serviceModel块中添加了这个。它似乎使所有路径都相对于您的服务安装位置。

  <system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true">

迟到总比没有好?

答案 3 :(得分:0)

使用

System.Web.HttpServerUtility.MapPath( "~/templates/myfile.htm" )