Ejemplo n.º 1
0
            /// <summary>
            /// 将文本格式化成标准的文件名。
            /// 中文会转换成拼音,保留英文数字和下划线
            /// </summary>
            /// <param name="input"></param>
            /// <returns></returns>
            static public string FormatFileName(string input, bool format)
            {
                StringBuilder sb = new StringBuilder();

                foreach (char ch in input)
                {
                    ///若是汉字,将此汉字转换成拼音,添加到结果
                    if (Regex.IsHanzi(ch))
                    {
                        string pinyin = Pinyin.ToPinyinSingle(ch);
                        if (!string.IsNullOrEmpty(pinyin))
                        {
                            if (format)
                            {
                                sb.Append(pinyin).Append(",");
                            }
                            else
                            {
                                sb.Append(pinyin);
                            }
                        }
                    }
                    ///不是汉字,判断是否合法,若合法,则添加到结果
                    else if (IsValidateFileName(ch))
                    {
                        sb.Append(ch);
                    }
                }
                string str = sb.ToString();

                if (format)
                {
                    int index = str.LastIndexOf(',');
                    if (index != -1)
                    {
                        str = str.Remove(index, 1);
                    }
                }
                return(str);
            }