2011-03-25 62 views
0

我在C#中创建了一个程序,该程序在打开nfo文件时读取文本文件(.nfo文件)。 (与我的exe文件相关的.nfo文件)。检查右侧文件夹中的.config文件

该程序检查配置文件,如果它丢失,它创建一个新的。

这工作正常,如果我运行exe文件manualy,然后从程序内打开一个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

这是一个WinForms或ASP .NET C#应用程序? – 2011-03-25 09:15:15

+0

这是一个Windows窗体应用程序。 – Skram 2011-03-25 10:14:00

回答

1

该解决方案对您来说非常简单 - 但不是很明显。实际上,你只需要输入你的配置文件的名称,这样应用程序就可以添加当前路径来获取配置文件的完整路径。
这就是你的问题,因为你以前在其他位置打开一个nfo文件,所以当前路径变成了nfo文件的路径。
因此,解决办法是直接把完整路径配置路径,要做到这一点,你可以使用:

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

非常感谢!这工作完美! :) – Skram 2011-03-25 10:12:01