A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© cmcm2014 中级黑马   /  2014-3-28 16:23  /  2180 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 cmcm2014 于 2014-3-30 12:40 编辑

准备做一个winform的小程序,需要把文件夹A中所有文件复制到指定的文件夹B中,但是A中有一些和B中重复,所以会弹出一个提示,复制和替换,需要点击确认后才能完成。
请问下,这样的操作怎样完成用C#代码。
或者给个解决此问题的方案。
谢谢

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

5 个回复

倒序浏览
我有 提问过 文件夹复制 的帖子,后来自己查了又贴上了, 但不会弹出提示框,你只要有些 if 判断控制下就行,copy方法的重载函数有说要不要覆盖
回复 使用道具 举报
给你个参考吧,这是我做的笔记
//复制文件
File.Copy(@"D:\详细报表.txt",@"E:\详细报表.txt");


Exists--文件是否存在
例如:
      string despath = @"D:\详细报表.txt";
            if (File.Exists(despath))
            {
                //目标文件已存在
                if (MessageBox.Show("目标文件已存在,是否覆盖?", "询问",                 MessageBoxButtons.YesNo, MessageBoxIcon.Question)                 ==DialogResult.Yes)              
                {
                    //要覆盖
                    //复制文件
                    File.Copy(@"D:\详细报表.txt",despath, true);
                    MessageBox.Show("文件已被覆盖!");
                }
            }

openFileDialog--打开的路径
saveFileDialog--保存的路径
filter--过滤文件
格式://前面写名称,然后加个|后面跟着*然后写后缀名.
openFileDialog1.Filter = "可执行程序|*.exe|
                           Excel文件|*.xls|
                           所有文件|*.*";

Filename 用户选中的文件名及路径.
ShowDialog();显示对话框的方法.
例如:
openFileDialog1.ShowDialog();--显示打开对话框
Directory:--用于创建和移动或枚举通过目录和子目录.

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报
Doublekill 发表于 2014-3-28 17:31
给你个参考吧,这是我做的笔记
//复制文件
File.Copy(@"D:\详细报表.txt",@"E:\详细报表.txt");

非常感谢 很有用!
回复 使用道具 举报
我写了个,你参考下。
  1. private void btnSource_Click(object sender, EventArgs e)
  2.         {
  3.             FolderBrowserDialog fbd = new FolderBrowserDialog();//新建打开文件夹对话框的对象
  4.             fbd.ShowDialog();
  5.             labSourcePath.Text = fbd.SelectedPath;//将选定的文件夹路径赋给label
  6.         }

  7.         private void btnTarget_Click(object sender, EventArgs e)
  8.         {
  9.             FolderBrowserDialog fbd = new FolderBrowserDialog();
  10.             fbd.ShowDialog();
  11.             labTargetPath.Text = fbd.SelectedPath;
  12.         }

  13.         private void btnCopy_Click(object sender, EventArgs e)
  14.         {
  15.             Copy(labSourcePath.Text,labTargetPath.Text);
  16.             MessageBox.Show("复制完成");
  17.         }
  18.         public void Copy(string Source, string Target)
  19.         {
  20.             Target=Target+"\\"+Path.GetFileName(Source);
  21.             if (!Directory.Exists(Target))//如果目标文件不存在
  22.             {
  23.                 Directory.CreateDirectory(Target);
  24.             }
  25.             string[] folder = Directory.GetDirectories(Source);
  26.             foreach (string item in folder)//找出所有源文件夹的子文件夹
  27.             {
  28.                 Copy(item, Target + "\\" + Path.GetFileName(item));//将源文件夹的子文件路径拷贝到目标文件夹下(递归)
  29.             }
  30.             string[] file = Directory.GetFiles(Source);
  31.             foreach (string item in file)//找出源文件夹中的所有文件
  32.             {
  33.                 File.Copy(item, Target +"\\" + Path.GetFileName(item));//复制到目标文件
  34.             }
  35.         }
复制代码

1.png (62.14 KB, 下载次数: 17)

1.png
回复 使用道具 举报
cancle 发表于 2014-3-28 18:34
我写了个,你参考下。

非常感谢 兄弟~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马