【问题标题】:Access ini file from documents for reading从文档中访问ini文件以进行阅读
【发布时间】:2010-01-24 01:17:26
【问题描述】:

我已经放置了一个配置 ini 文件“config.ini”,用于从我的 C# 程序读取和写入,问题是,如果用户启用了 UAC,那么由于某些奇怪的原因,程序不会读取或写入文件,但它设法创建了文件,但无法读取或写入。

我怎样才能让它工作。

此文件保存在 DOCUMENTSFOLDER\ProductName\config.ini 中

ini类文件:http://www.sinvise.net/so/Ini.cs

config.ini 创建代码片段:http://www.sinvise.net/so/creation.txt

【问题讨论】:

  • 您能否附上一些代码,让我们 SO'ers 看看是什么/如何/为什么/何时/哪里出了问题?
  • 添加了两个文件,更新有问题

标签: c# file ini


【解决方案1】:

在继续之前的快速建议,您应该查看nini,它是一个简洁的 INI 处理程序,负责读取/写入 INI 文件。

从 ini 文件中读取代码的示例用法。

使用妮妮; 使用 Nini.Config; 命名空间 niniDemo{ 公共类 niniDemoClass{ 公共布尔LoadIni(){ 字符串 configFileName = "demo.ini"; IniConfigSource configSource = new IniConfigSource(configFileName); IConfig demoConfigSection = configSource.Configs["Demo"]; 字符串 demoVal = demoConfigSection.Get("demoVal", string.Empty); } } }

尝试一下,然后从那里拿走它......

希望这会有所帮助, 最好的祝福, 汤姆。

【讨论】:

  • 我正在将我的项目重新编码为 nini,希望它能解决我的问题。
  • 工作得很好!非常感谢,你帮我省了很多麻烦!
  • @Sandeep:好东西!很高兴有帮助! :)
【解决方案2】:

你应该有更好的运气写入路径:Environment.SpecialFolder.LocalApplicationData。您的应用应该有权在 UAC 开启或关闭的情况下写入,甚至在应用/用户权限非常有限的机器上。

【讨论】:

  • 我刚试过:string iniPath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + "\\Product\\config.ini";这是不行的,它没有读取数据。
  • 程序是否成功地将文件写入那里(如果我不清楚,这不是 DOCUMENTSFOLDER,而是用于 INI 文件的更好的文件夹)?
  • 是的,它处理了所有数据,但它没有从中读取,我正在使用 Ini 类从该文件中获取值。课程来源在我的问题中。我已经使用过 DOCUMENTSFOLDER 和以前的 common applications 数据文件夹,仍然不行,我相信它可能与 Ini 类有关
  • 另外,我忘记了 LocalApplicationData 是否以反斜杠结尾,这可能是问题所在。无论哪种情况,最好使用处理这两种情况的 Path.Combine。例如,Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Product\\config.ini");
  • 您能否更具体地说明阅读失败的原因。例如,它是抛出异常(如果是,是哪个异常),还是没有抱怨,但没有看到文件中的任何数据,或者声称文件不存在等等?
猜你喜欢
  • 2011-01-02
  • 2012-06-29
  • 2014-02-20
  • 1970-01-01
  • 2011-12-26
  • 1970-01-01
  • 2015-10-01
  • 2013-09-15
  • 2014-03-16
相关资源
最近更新 更多