c#读取.resx/.resource资源文件

来源:互联网 发布:红楼梦服饰知乎 编辑:程序博客网 时间:2024/05/17 23:33


比如有两个资源文件,en-us.resx和zh-cn.resx

public static string GetLangString(string Key, string langtype, string FilePath)

     {
            string filename;
            switch (langtype)

            {
                case ''cn'': filename = "zh-cn.resources"; break;
                case ''en'': filename = "en-us.resources"; break;
                default: filename = "en-us.resources"; break;
            }

            System.Resources.ResourceReader reader = new System.Resources.ResourceReader(FilePath + filename);

            string resourcetype;
            byte[] resourcedata;
            string result = string.Empty;

            try {
                reader.GetResourceData(Key, out resourcetype, out resourcedata);
                //去掉第一个字节,无用
                byte[] arr = new byte[resourcedata.Length - 1];
                for (int i = 0; i < arr.Length; i++) {
                    arr[i] = resourcedata[i + 1];
                }
                result = System.Text.Encoding.UTF8.GetString(arr);
            }
            catch (Exception ex)
            {
                ex.ToString();
            }
            finally {
                reader.Close();
            }

            return result;
        }


其中en-us.resx和zh-cn.resx两个资源文件一定要先编译成en-us.resources和zh-cn.resources才能正常使用

编译工具:ResGen.exe和批处理文件.bat

.bat里面的内容:(特别是当en-us.resx和zh-cn.resx里面的字符串定义很多时,特别好用)

resgen.exe zh-cn.resx zh-cn.resources
resgen.exe en-us.resx en-us.resources



下面啰嗦一下怎么做.bat文件

1、首先建个txt文件;把内容

resgen.exe zh-cn.resx zh-cn.resources
resgen.exe en-us.resx en-us.resources

放到txt文件中,保存

2、修改txt的后缀名为.bat;

3、双击就可运行了;



备注:以上所有文件都放在一个文件夹下,若果放在不同的文件夹下,需要在.bat文件中明确指出文件路径



0 0
原创粉丝点击