Esempio n. 1
0
File: Form1.cs Progetto: rrqs/rename
        /// <summary>
        /// 正则表达式筛选,删除不符合指定正则表达式的字符串的
        /// </summary>
        /// <param name="RegexString">正则表达式字符串组</param>
        /// <param name="S">输入字符串组</param>
        /// <param name="O">输出字符串组</param>
        private void RegexFilter(
            string RegexString,
            ref List <string> S,
            ref List <string> O
            )
        {
            List <string> _S;

            if (S == null)
            {
                return;
            }
            if (O == S)
            {
                _S = new List <string>(S);
            }
            else
            {
                _S = S;
            }
            O = new List <string>();

            Regex reg;
            Delegate_OutputInfo doi = new Delegate_OutputInfo(OutputInfo);

            try
            {
                reg = new Regex(RegexString);

                this.Invoke(doi, "...", Color.Green);
            }
            catch
            {
                this.Invoke(doi, "正则表达式有误", Color.Red);

                return;
            }

            foreach (string eachString in _S)
            {
                //存在匹配字符串
                if (reg.IsMatch(eachString))
                {
                    O.Add(eachString);
                }
            }
        }
Esempio n. 2
0
File: Form1.cs Progetto: rrqs/rename
        private void RenameButton_Click(object sender, EventArgs e)
        {
            FileInfo files;

            if (RefreshShowResult())
            {
                Delegate_OutputInfo doi = new Delegate_OutputInfo(OutputInfo);
                FileStream          logFile;
                StreamWriter        logFileWriter;

                if (File.Exists(FilePath + "\\RenameLog.txt"))
                {
                    logFile = new FileStream(FilePath + "\\RenameLog.txt", FileMode.Open, FileAccess.Write);
                }
                else
                {
                    logFile = new FileStream(FilePath + "\\RenameLog.txt", FileMode.Create, FileAccess.Write);
                }
                logFileWriter = new StreamWriter(logFile);
                logFile.Seek(0, SeekOrigin.End);
                logFileWriter.Write("\n----------------------------------------------\n");

                try
                {
                    for (int index = 0; index < filterFiles.Count; index++)
                    {
                        files = new FileInfo(FilePath + "\\" + filterFiles[index]);
                        files.MoveTo(FilePath + "\\" + renameList[index]);
                        logFileWriter.Write(DateTime.Now.ToString() + "    " + filterFiles[index] + " --> " + renameList[index] + "\n");
                    }
                    RefreshShowResult();

                    this.Invoke(doi, "批量重命名成功", Color.Green);
                    logFileWriter.Write(DateTime.Now.ToString() + "    rename succeed\n\n");
                }
                catch
                {
                    RefreshShowResult();
                    this.Invoke(doi, "批量重命名未完全成功", Color.Red);
                    logFileWriter.Write(DateTime.Now.ToString() + "    rename abort\n\n");
                }

                logFileWriter.Close();
                logFile.Close();
            }
        }
Esempio n. 3
0
File: Form1.cs Progetto: rrqs/rename
        /// <summary>
        /// 提取字符串
        /// </summary>
        /// <param name="Input"></param>
        /// <param name="ExtractString"></param>
        /// <param name="Keys"></param>
        private string ExtractKey(string Input, List <string> Keys)
        {
            string temp;
            Regex  reg;
            Delegate_OutputInfo doi = new Delegate_OutputInfo(OutputInfo);

            try
            {
                reg = new Regex(Keys[0] + Keys[1] + Keys[2]);
                ;
                this.Invoke(doi, "...", Color.Green);
            }
            catch
            {
                this.Invoke(doi, "正则表达式有误", Color.Red);
                return("");
            }
            temp = reg.Match(Input).Value;
            reg  = new Regex(Keys[0]);
            temp = temp.Remove(0, reg.Match(temp).Value.Length);
            reg  = new Regex(Keys[1]);
            return(reg.Match(temp).Value);
        }