怎么c#修改properties文件件

  • Scope(作用域):“Scope”(作用域)属性表示如何在运行时访问设置。“Scope”(作用域)属性有两个可能的值:“Application”(应用程序)和“User”(用户)。本部分将会对这些值进行更多讨论。

  • Value(值):“Value”(值)属性表示访问设置时返回的值。该值将为“Type”(类型)属性所表示的类型。

这些属性中的大多数都相当容易理解。“Name”(名称)、“Type”(类型)和“Value”(值)的概念均应为大多数程序员所熟知。“Scope”(作用域)属性需要稍加说明。设置具有两个可能的作用域:应用程序作用域和用户作用域。具有应用程序作用域的设置表示无论用户首选项为何应用程序都会使用的设置,而具有用户作用域的设置对实际应用程序来说通常并不是很重要,它们很可能与首选项或其他非关键值关联。

应用程序作用域设置与用户作用域设置之间的重要区别是,用户作用域设置在运行时为读/写,并且可在代码中对其值进行更改和保存。应用程序作用域设置在运行时为只读。虽然可以读取,但是不能对其进行写入。具有应用程序作用域的设置只能在设计时或通过手动修改设置文件进行更改。

可以使用设置设计器在设计时创建新的设置。设置设计器采用了大家熟悉的网格式界面,通过它可以创建新设置并指定这些设置的属性。必须为每个新设置指定“Name”(名称)、“Type”(类型)、“Scope”(作用域)和“Value”(值)。创建了设置后,即可使用本文稍后介绍的机制在代码中对其进行评估。

在设计时创建新设置的步骤

  • 在“Solution Explorer”(解决方案资源管理器)中,展开项目的“Properties”(属性)节点。

  • 在设置设计器中,为设置设定“Name”(名称)、“Type”(类型)、“Scope”(作用域)和“Value”(值)。每行代表单个设置。图 1 给出了一个设置设计器示例。

在设计时更改现有设置的值

还可以按以下步骤所述,使用设置设计器在设计时更改预先存在设置的值:

在设计时更改现有设置值的步骤

  • 在“Solution Explorer”(解决方案资源管理器)中,展开项目的“Properties”(属性)节点。

  • 在设置设计器中,找到要更改的设置,然后在“Value”(值)列中键入新值。

在应用程序会话之间更改设置值

有时,在编译和部署了应用程序后,可能需要在应用程序会话之间更改设置值。例如,可能需要更改连接字符串,使其指向正确的数据库位置。由于设计时工具在应用程序编译和部署后不可用,所以必须手动在文件中更改设置值。

在应用程序会话间更改设置值的步骤

  • 找到要更改的设置条目。它应看似以下示例:

  • 为设置键入新值,然后保存该文件。

运行时应用程序可以通过代码使用设置。具有应用程序作用域的设置值能够以只读方式进行访问,而用户作用域设置的值可以进行读写。在 C# 中可以通过 Properties 命名空间使用设置。

可在运行时使用 Properties 命名空间读取应用程序作用域及用户作用域设置。Properties 命名空间通过 Properties.Settings.Default 对象公开了项目的所有默认设置。编写使用设置的代码时,所有设置都会出现在 IntelliSense 中并且被强类型化。因此,举例来说,如果设置的类型为 System.Drawing.Color,则无需先对其进行强制类型转换即可使用该设置,如下例所示:

应用程序作用域设置是只读的,只能在设计时或通过在应用程序会话之间修改 <AssemblyName>.exe.config 文件来进行更改。然而,用户作用域设置却可以在运行时进行写入,就像更改任何属性值那样。新值会在应用程序会话持续期间一直保持下去。可以通过调用 Settings.Save 方法来保持在应用程序会话之间对用户设置所做的更改。这些设置保存在 User.config

在运行时写入和保持用户设置的步骤

  • 访问用户设置并为其分配新值,如下例所示:

  • 如果要保持在应用程序会话之间对用户设置所做的更改,请调用 Save 方法,如以下代码所示:


在某些情况下,可能需要在应用程序中使用多组设置。例如,如果正在开发的应用程序中有某组设置预计会频繁进行更改,则比较明智的做法是将其全都分成单个文件,这样便可成批替换相应文件,而不会使其他设置受到影响。Visual Studio 2005 允许向项目中添加多组设置。可以通过各自节点中生成的设置对象来访问各组附加设置。例如,如果向项目中添加了名为

  • 从“Project”(项目)菜单中选择“Add New Item”(添加新项)。将会打开“Add New Item”(添加新项)对话框。

  • 在“Name”(名称)框中为设置文件命名,如 SpecialSettings.settings,然后单击“Add”(添加),将文件添加到解决方案中。

  • 在“Solution Explorer”(解决方案资源管理器)中,将新的设置文件拖入到 Properties 文件夹中。这样便可在代码中使用新的设置。

  • 如在其他任何设置文件中那样在此文件中添加和使用设置。可通过 Properties.SpecialSettings 对象访问此组设置。

在本文中,您已了解如何在 C# 应用程序中使用设置来存储和管理从属于应用程序和用户的设置。您还学会了如何在设计时添加设置、如何在运行时读写设置,以及如何将多组附加设置合并到应用程序中。

     bin目錄用來存放編譯的結果,bin是二進位binrary的英文縮寫,因為最初C編譯的程序文件都是二進位文件。

Java从一个byte流中读取一个字符串时,将把平台相关的byte转变为平台无关的Unicode字符串。在输出时Java将把Unicode字符串转变为平台相关的byte流,如果某个Unicode字符在某个平台上不存在,将会输出一个′?′。举个例子:在日文Windows中,Java读出一个"SHIFT_JIS"编码的文件(可以是任何流)到内存中构造字符串对象,将会把"SHIFT_JIS"编码的文字转变为Unicode编码的字符串,如果把这个字符串输出又将会把Unicode字符串转化为"SHIFT_JIS"的byte流或数组:"新規作成"----->"/u65b0/u898f/u4f5c/u6210"----->"新規作成"。 由于Java 2 只能处理基于ASCII的属性文件,所以所有Unicode编码文件都要转换一下,使用ASCII转义代码。举个例子,用Notepad, EmEdit或者是Editplus打开properties文件,你将看到的都是一堆ASCII转义字符串:

用StreamReader, 无论是用什么编码来读取该文件,你获取到的都是那些像密码一样的东东。

再来看看下面两个语句的比较:

也就是从文件里读取出时,都如同输出1一样,无论你用什么编码。。。

因此我们要做的事就是,如何把 “/u753b”字符串 变成一个“画”字, 看上去像是在破译密码。日文环境下,日文汉字是双字节编码,由高低两个byte组合成。

我要回帖

更多关于 修改properties文件 的文章

 

随机推荐