使用TextReader的c#文件路径默认为Documents and Settings

本文关键字:Documents and Settings 默认 路径 TextReader 文件 使用 | 更新日期: 2023-09-27 18:01:37

我有一个程序已经作为计划任务运行了很长一段时间了。我对它做了一个改变,甚至与TextReader无关,并将。exe的副本放回服务器上(server 2003 R2 SP2),现在当您从计划任务中运行程序时,或者只需双击。exe,下面一行尝试从C:'Documents and Settings'user'读取文件IPAddressMonitor.ini,而不是在文件夹中。exe位于C:'IPAddressMonitor。知道为什么吗?

TextReader tr = new StreamReader("IPAddressMonitor.ini");

使用TextReader的c#文件路径默认为Documents and Settings

使用反射来获得可执行文件的路径-然后只要你的。ini与可执行文件在同一文件夹中(或相对于它的某个文件夹),你就不会再遇到这个问题了:

static public string AssemblyDirectory
{
    get
    {
        string codeBase = Assembly.GetExecutingAssembly().CodeBase;
        UriBuilder uri = new UriBuilder(codeBase);
        string path = Uri.UnescapeDataString(uri.Path);
        return Path.GetDirectoryName(path);
    }
}

Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)

查看更多信息