private void CopyFolder(string sourceFolder, string destFolder)
        {
            string text = txtNoUpData.Text;            if (!Directory.Exists(destFolder))
            {
                Directory.CreateDirectory(destFolder);
            }
            string[] files = Directory.GetFiles(sourceFolder);
            foreach (string file in files)
            {
                string name = Path.GetFileName(file);
                string dest = Path.Combine(destFolder, name);
                label8.Text = "正在上传中.......";
                string less = Path.GetExtension(file);
                Regex r = new Regex(less);
                Match m = r.Match(text);
                if (!m.Success)
                {
                    File.Delete(dest);
                    File.Copy(file, dest);
                }
                else 
                { Regex w = new Regex(name);
                Match n = w.Match(text);
                if (!n.Success)
                    {
                        File.Delete(dest);
                        File.Copy(file, dest);
                    }
                }
            }

            string[] folders = Directory.GetDirectories(sourceFolder);
            foreach (string folder in folders)
            {
                string name = Path.GetFileName(folder);
                string dest = Path.Combine(destFolder, name);
                CopyFolder(folder, dest);
            }
        }我怎么样可以去除同时不COPY  *.xml 和 123.txt啊

解决方案 »

  1.   

    System.IO.Path.GetExtension获取扩展名,判断
      

  2.   

    判断语句是啥样的请问啊。。我的判断语句会出现*.xml的继续上传的。。因为它第二次匹配不成功就上传了。。
      

  3.   

     private void CopyFolder(string sourceFolder, string destFolder)
            {
                string text = txtNoUpData.Text;
                if (!Directory.Exists(destFolder))
                {
                    Directory.CreateDirectory(destFolder);
                }
                string[] files = Directory.GetFiles(sourceFolder);
                foreach (string file in files)
                {
                    string name = Path.GetFileName(file);
                    string dest = Path.Combine(destFolder, name);
                    string lastname = Path.GetExtension(file);
                    if (Regex.IsMatch(text, lastname))
                    {
                        lastname = lastname.Replace(".", "\\*.");
                        if (Regex.IsMatch(text, lastname)) { proB_UP.Value++;}
                        else
                        {
                            if (Regex.IsMatch(text, name)) { proB_UP.Value++; }
                            else
                            {
                                proB_UP.Value++;
                                File.Delete(dest);
                                File.Copy(file, dest);
                            }
                        }
                    }
                    else
                    {                    proB_UP.Value++;
                        File.Delete(dest);
                        File.Copy(file, dest);
                    }
                }
                string[] folders = Directory.GetDirectories(sourceFolder);
                foreach (string folder in folders)
                {
                    string name = Path.GetFileName(folder);
                    string dest = Path.Combine(destFolder, name);
                    CopyFolder(folder, dest);
                }
            }原来这样就行了