根据Microsoft Developer Network,可以通过这种方式生成resx文件。 (http://msdn.microsoft.com/en-us/library/gg418542%28v=vs.110%29.aspx)
using (ResXResourceWriter resx = new ResXResourceWriter("filename.resx"))
{
resx.AddResource("KeyString", "ValueString");
}
resx.Generate();
但是,我找不到新生成的resx文件。 (我认为生成的文件是在本地机器中设置的,但它似乎并不存在。)
我一直在寻找(1)如何检查生成的resx文件的位置,以及(2)如何将其保存到文件夹中。 (即将以编程方式生成的resx文件保存到文件夹中,因为我们可以使用" XmlDocument.Save(" FileName")"方法创建和保存xml文件。)
这是我编码的一部分。
if (saveFileDialog.ShowDialog() == DialogResult.OK) {
using (ResXResourceWriter resx = new ResXResourceWriter("resxfile.resx")) {
for (int i = 0; i < rowArray.Length; i++) {
string keyStrings = rowArray[i][Key].ToString();
string valueStrings = rowArray[i][Value].ToString();
resx.AddResource(keystrings, valueStrings);
}
resx.Generate();
}
}
这并不保存应该从&#34; for&#34;生成的resx文件。环。 如果您愿意提供任何见解,我将不胜感激。
答案 0 :(得分:5)
您不需要专门致电resx.Generate()
来创建该文件(如果您没有&#39,它将在Dispose
区块末尾的using
自动调用; t手动调用它,但如果你这样做,它应该进入使用块:
using (ResXResourceWriter resx = new ResXResourceWriter("filename.resx"))
{
resx.AddResource("KeyString", "ValueString");
resx.Generate();
}
在此之后,您可以在项目的bin\Debug
或bin\Release
文件夹中找到.resx文件,具体取决于配置。
您还可以将文件路径传递给构造函数以指定自定义文件夹,例如:
using (ResXResourceWriter resx = new ResXResourceWriter(@"C:\tmp\sampleResource.resx"))
{
resx.AddResource("KeyString", "ValueString");
}
在这种情况下,该文件将显示在C:\tmp
。
您还可以使用FileStream
来控制资源文件的创建位置和方式,例如:
using (FileStream fs = new FileStream(@"C:\tmp\MySuperResource.resx", FileMode.Create))
using (ResXResourceWriter resx = new ResXResourceWriter(fs))
{
resx.AddResource("Key1", "Value1");
resx.AddResource("Key2", "Value2");
resx.AddResource("Key3", "Value3");
}