如果文件位置在 c# 中未知,如何从文本文件中读取数据

本文关键字:文件 读取 数据 文本 未知 位置 如果 | 更新日期: 2023-09-27 18:30:46

这个问题之前在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) 中发布 Web 后,从文本文件中读取数据将正常工作。谢谢。

如果文件位置在 c# 中未知,如何从文本文件中读取数据

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

你的代码必须像这样

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

您可以使用

HttpContext.Current.Request.ApplicationPath

然后根据它附加字符串。