Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 检查右侧文件夹中的.config文件_C#_Config - Fatal编程技术网

C# 检查右侧文件夹中的.config文件

C# 检查右侧文件夹中的.config文件,c#,config,C#,Config,我用C#编写了一个程序,当我打开nfo文件时,它可以读取文本文件(.nfo文件)。(将.nfo文件与我的exe文件关联) 程序检查配置文件,如果缺少,则创建一个新的配置文件 如果我手动运行exe文件,然后从程序内部打开一个nfo文件,这会很好地工作。当我双击一个nfo文件时,程序会启动,但allso会在与该nfo文件相同的文件夹中写入一个配置文件 我希望程序只检查与exe文件位于同一文件夹中的配置文件。我希望exe文件也与文件夹无关 以下是配置检查/写入的代码: string configFil

我用C#编写了一个程序,当我打开nfo文件时,它可以读取文本文件(.nfo文件)。(将.nfo文件与我的exe文件关联)

程序检查配置文件,如果缺少,则创建一个新的配置文件

如果我手动运行exe文件,然后从程序内部打开一个nfo文件,这会很好地工作。当我双击一个nfo文件时,程序会启动,但allso会在与该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;
}
string configFil=“xnforeder.exe.Config”;
StreamWriter sw=null;
字符串configText=@“”
如果(!File.Exists(configFil))
{
FileStream fs=File.Open(configFil、FileMode.CreateNew、FileAccess.Write);
sw=新的StreamWriter(fs,System.Text.Encoding.UTF8);
sw.WriteLine(配置文本);
sw.Close();
sw=null;
}

我说得通吗

解决方案非常简单——你很幸运——但并不十分明显。实际上,您只输入配置文件的名称,因此应用程序添加当前路径以获得配置文件的完整路径。
这就是您的问题,因为当您以前在其他位置打开一个nfo文件时,当前路径变成了该nfo文件的路径。
因此,解决方案是直接将完整路径放到配置路径中,要做到这一点,您可以使用:

string fullPathToConfigFile = Assembly.GetEntryAssembly().Location + ".config"

这是winforms还是asp.net c#应用程序?它是windows窗体应用程序。