前面在StackOverFlow中已经问过这个问题,并且在该帖子中也标记了答案。但是可惜的是
Read a file from an unknown location?无法解决我的问题。
我正在建立一个网站,需要从文本文件读取数据。我电脑中文件的实际位置是: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)中发布网络后,从文本文件读取的数据将正常工作。谢谢。
最佳答案
您可以通过AppDomain.CurrentDomain.BaseDirectory
获取应用程序路径
您的代码必须是这样的sStr = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "DataFile.txt");