Articles of ini

Windows批处理脚本读取.ini文件

我正在尝试使用以下格式读取.ini文件: [SectionName] total=4 [AnotherSectionName] total=7 [OtherSectionName] total=12 基本上我想打印出.ini文件中的某些值,例如OtherSectionName下的总数,然后是OtherSectionName的总数。

将unicodestring存储在ini文件中时是否会出现与编码相关的问题?

目前已经有关于unicode和ini文件的问题,但是其中很多是针对特定领域的。 所以我不确定这个答案是否适用于一般情况。 动机 :我想使用ini文件来存储简单的数据,如一些数字和一些string。 string由用户提供(通过GUIinput)。 该软件可以运行在世界任何地方,任何语言都可以使用。 这些文件也可以在用户之间共享(这样他们可以写在一个系统上,在另一个系统上阅读等等)。 我认为在使用GetPrivateProfileStringW和WritePrivateProfileStringW (我的目标系统> = Windows XP)时,ini文件中的unicode应该没有问题。 但后来我偶然发现了这个问题的答案。 引用: WritePrivateProfileStringW函数将使用传统系统编码(例如,日文系统上的Shift-JIS)编写INI文件,因为它是传统的支持function。 如果你想有一个完全支持Unicode的INI文件,你将需要使用一个外部库。 我现在不确定 – 我必须担心吗? 或者我可以继续使用ini文件? 编辑: 似乎避免随机编码的关键可能是准备一个包含BOM的空文件,然后使用这个文件。 有没有人(正面/负面)的经验呢?

通过修改desktop.ini更改图标的文件夹

我的目标是将我的电影库的每个文件夹的图标更改为Windows中使用Java的每个文件夹的图标。 每个文件夹都有一个256×256图标,以该文件夹命名,但具有适当的扩展名。 例如, 每秒5cm的文件夹中有5cm Per Second.ico文件。 我想我可以通过修改文件夹中的desktop.ini文件来做到这一点。 所有的文件夹中都有这个文件,因为每个文件夹中的图标曾经是文件夹的实际图标,但是当我更改了电影库的path后, desktop.ini中图标的path没有更新。 每个desktop.ini都是这样的: [.ShellClassInfo] IconResource=F:\Anime\Movies\5cm Per Second\5cm Per Second.ico,0 现在图标所在的path是这样的: E:\电影\每秒5厘米\每秒5厘米,所以我想我所要做的就是将desktop.ini更改为: [.ShellClassInfo] IconResource=E:\Movies\5cm Per Second\5cm Per Second.ico,0 这根本不工作,然后我想我也应该让Windows知道desktop.ini是一个系统文件,我把这个添加到我的代码,但是根本不工作。 我的示例文件夹的代码: import java.io.File; import java.io.IOException; import org.ini4j.Wini; public class ListFiles { public static void main(String[] args) throws IOException { // Directory path here String path = "E:\\Movies\\5cm Per Second"; String […]

“login.ini”是保留的名字吗?

我将login的MRU存储在一个名为login.ini的文件中,并将其保存在widnows应用程序文件夹中。 我注意到在某些系统上 – 我不知道为什么; 我找不到一个常见的原因 – 用户不能创build文件,而创build在同一文件夹中的所有其他文件。 我能想到的唯一原因是,一些防病毒/窗口设置/ …不允许这个特定的用户在这个系统上创build文件。 我通过重命名文件解决了这个问题,似乎没问题,但我想确定一下。 有谁知道更多? 赏金注意事项: 这是一个相关的问题,我详细地问了一些我正在做的事情。

:: GetPrivateProfileString读取INI文件的整个部分

我正在修改现有的C ++应用程序,并移出一些当前硬编码的值。 我正在做一个类,将“pipe理”这整个事情,并保持从INI文件的值map<CString, CString>的值。 现在我必须读取每个值分别使用::GetPrivateProfileString函数 – 我可以以某种方式阅读整个部分,而不是单个值? 不要手动读取文件,但如果有任何合理的(即高效+简单易用)现有的方式,我愿意提供build议。 编辑:只是现在不得不使用它“真实”,解决scheme确实传递NULL作为lpKeyName值。 完整的代码,包括parsing返回值: char buffer[MAX_STRING_SIZE]; int charsCount = ::GetPrivateProfileString("MySection", NULL, NULL, buffer, MAX_STRING_SIZE, m_strIniPath); CString curValue; curValue.Empty(); char curChar = '\0'; for (int i = 0; i < charsCount; i++) { curChar = buffer[i]; if (curChar == '\0') { if (curValue.GetLength() > 0) HandleValue(curValue); curValue.Empty(); } else { […]

从ini文件读取path,反斜杠转义字符消失?

我从ini文件中读取绝对path名,并将path名作为String值存储在我的程序中。 但是,当我这样做的时候,存储的价值似乎正在丢失反斜杠,这样path就会出现一个大混乱? 例如,ini文件将具有以下键值: key=C:\folder\folder2\filename.extension 并存储的值是作为C:folderfolder2filename.extension 。 有谁知道如何逃脱钥匙之前,它被读入? 我们还假设更改ini文件的值不是一种替代方法,因为它不是我创build的文件。