Exemple #1
0
        internal static void Initialize(IWordProvider wordService, string path)
        {
            _wordService = wordService;
            var files = FileCommon.GetFiles(path, "*.scel");
            HashSet <PinYinWords> pyws = new HashSet <PinYinWords>();

            foreach (var file in files)
            {
                GetPinYinWords(file, pyws);
            }

            var list = SimplifyPinYinWords(pyws);

            list = list.OrderBy(q => q.Words).Distinct().ToList();

            for (int i = list.Count - 1; i >= 1; i--)
            {
                var t  = list[i];
                var t0 = list[i - 1];
                if (t.Words == t0.Words)
                {
                    list.RemoveAt(i);
                }
            }

            list = list.OrderByDescending(q => q.Words.Length).ToList();

            var text    = "";
            var py      = "";
            var index   = 0;
            var pyIndex = "0,";

            for (int i = 0; i < list.Count; i++)
            {
                if (i > 0)
                {
                    text += ",";
                    py   += ",";
                }

                text += list[i].Words;
                var pys = list[i].GetPinYinIndex();
                py      += string.Join(",", pys);
                index   += pys.Count();
                pyIndex += "," + index;
            }
            //PinYinIndexPath
//            WordPinYinPath
//                PinYinDataPath
            File.WriteAllText(BaseWordService.DictPinYinPathConfig.WordPath, text);//确定
//            File.WriteAllText(BaseWordService.DictPinYinPathConfig., pyIndex);
            File.WriteAllText(BaseWordService.DictPinYinPathConfig.WordPinYinPath, py);
        }
        /// <summary>
        /// 压缩指定文件夹下的文件
        /// </summary>
        /// <param name="sourceFilePath">文件夹目录</param>
        /// <param name="zipDirectory">压缩包保存目录,默认与源文件在同一目录</param>
        /// <param name="zipName">压缩包保存目录</param>
        /// <param name="searchPattern">要与 path 中的文件名匹配的搜索字符串。此参数可以包含有效文本路径和通配符(* 和 ?)的组合(请参见“备注”),但不支持正则表达式。</param>
        /// <param name="searchOption">默认当前文件夹下 TopDirectoryOnly,若查询包含所有子目录为AllDirectories</param>
        /// <param name="overWrite">是否覆盖</param>
        /// <param name="password">密码</param>
        /// <param name="compressionLevel">压缩等级(0 无 - 9 最高,默认 5)</param>
        /// <param name="zipMaxFile">压缩包内最多文件数量(-1不限)</param>
        /// <param name="blockSize">缓存大小(每次写入文件大小,默认 2048)</param>
        /// <returns></returns>
        public override string[] CompressCatalogAndFiltrate(string sourceFilePath, string zipDirectory, string zipName,
                                                            string searchPattern      = "*.*",
                                                            SearchOption searchOption = SearchOption.AllDirectories, bool overWrite = true,
                                                            string password           = "", int compressionLevel = 5, int zipMaxFile = -1, int blockSize = 2048)
        {
            CheckZipSourceDirectory(sourceFilePath);
            CheckZipDirectory(zipDirectory);
            CheckZipName(zipName);

            var files = FileCommon.GetFiles(sourceFilePath, searchPattern, searchOption);

            return(CompressMulti(files, zipDirectory, zipName, overWrite, password, compressionLevel, zipMaxFile,
                                 blockSize));
        }