3

这个问题之前在 StackOverFlow 中已经被问过,并且答案也在那个帖子中被标记。但遗憾的 是从未知位置读取文件中提供的解决方案?不能解决我的问题。
我正在建立一个网站,需要从文本文件中读取数据。该文件在我的电脑中的实际位置是:C:\Developments\TestProject\PettyCashSolution\PettyCashWeb\DataFile.txt我已经从上面的链接尝试了以下解决方案,但没有运气。

string sString = string.Empty;
string sStr = "";
StreamReader oStreamReader;
try
{ 

尝试1

sStr = Path.Combine(Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location), "DataFile.txt");

这将在下面返回:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\pettycashweb\af7f0870\c5ac294a\DataFile.txt

尝试2

sStr = Path.Combine(Application.StartupPath, "DataFile.txt");

这将返回如下:
编译错误:当前上下文中不存在名称“应用程序”

尝试3

oStreamReader = new StreamReader(File.OpenRead(Directory.GetCurrentDirectory().ToString() + "\\DataFile.txt"));

这将返回如下:
异常:找不到文件 'C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\DataFile.txt'

oStreamReader = new StreamReader(sStr);
sString = oStreamReader.ReadLine();

}
catch (Exception ex)
{
}

还请建议我应该怎么做,以便在服务器(iis)中发布网络后,从文本文件中读取的数据将正常工作。谢谢。

4

2 回答 2

4

您可以通过以下方式获取应用程序路径AppDomain.CurrentDomain.BaseDirectory

您的代码必须是这样的

sStr = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "DataFile.txt");

于 2012-04-10T05:37:10.837 回答
0

您可以使用

HttpContext.Current.Request.ApplicationPath

然后根据它附加字符串。

于 2012-04-10T05:41:38.383 回答