当我打开nfo文件时,我在C#中创建了一个读取文本文件(.nfo文件)的程序。 (与我的exe文件关联的.nfo文件)。
程序检查配置文件,如果缺少,则创建一个新文件。
如果我手动运行exe文件,然后从程序内部打开一个nfo文件,这样可以正常工作。当我双击一个nfo文件时,程序启动,但是所有的配置文件都写在与nfo文件相同的文件夹中。
我希望程序只检查与exe文件在同一文件夹中的配置文件。我希望exe文件也是独立于文件夹的。
以下是配置检查/写入的代码:
string configFil = "XnfoReader.exe.Config";
StreamWriter sw = null;
string configText = @"<?xml version=""1.0"" encoding=""utf-8"" ?>"
if (!File.Exists(configFil))
{
FileStream fs = File.Open(configFil, FileMode.CreateNew, FileAccess.Write);
sw = new StreamWriter(fs, System.Text.Encoding.UTF8);
sw.WriteLine(configText);
sw.Close();
sw = null;
}
我在这里有道理吗?
答案 0 :(得分:1)
解决方案非常简单 - 对你来说很难 - 但不是很明显。实际上,您只需输入配置文件的名称,因此应用程序会添加当前路径以获取配置文件的完整路径。
这是你的问题,因为你以前在其他位置打开一个nfo文件,当前路径成为nfo文件的路径。
因此,解决方案是直接将完整路径放到配置路径中,为此可以使用:
string fullPathToConfigFile = Assembly.GetEntryAssembly().Location + ".config"