读取和写入C#控制台应用程序的发行文件夹中的文本文件

时间:2014-07-17 13:45:48

标签: c#

我有一个C#控制台应用程序,它使用来自txt文件的文本作为SQL查询的参数。查询运行后,它将最高主键存储在文本文件中。下次运行时,它使用WHERE语句中该文本文件的第一行来获取比以前存储的主键更高的主键。以下是我使用的代码:

//获取最新的主键

static String mostRecentID= File.ReadAllLines(@"C:\DataStorage\latestID.txt").First().Trim();

//运行查询

SELECT * FROM whatever WHERE pk > mostRecentID

//存储最新的主键

DataRow mostRecentIDRow= exportTable.Select().FirstOrDefault();
        if (mostRecentIDRow!= null)
        {
            mostRecentID = mostRecentIDRow[0].ToString().Trim();
            File.WriteAllLines(@"C:\DataStorage\latestID.txt", new String[] { mostRecentID});
        }

我需要能够独立于程序或文件所在的位置读取和写入此文本文件。有没有办法在将它保存在程序的release文件夹中时执行此操作?

3 个答案:

答案 0 :(得分:0)

如果您尝试将文本文件保留在应用程序的根位置,请使用此

string file = Path.Combine(
     System.Reflection.Assembly.GetExecutingAssembly().Location, "latestID.txt");

答案 1 :(得分:0)

您可以像这样获取当前正在运行的程序集的路径:

 string path = System.IO.Path.GetDirectoryName( 
  System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase );

在那里你可以保存/加载你的文件

答案 2 :(得分:0)

只需使用此变量:

 string myDirectory = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);

获取程序执行的目录。

因此,当您将.txt放入发布文件夹时,您可以使用:

 File.WriteAllLines(myDirectory + "/" + "latestID.txt", new String[] { mostRecentID});