文件复制与粘贴最简化版

某一类型多项文件复制与粘贴实例

目的:

找到系统中特定类型的某些文件,随后选中保存于listbox中,选中系统中某个已存在路径,将文件复制到该路径中

实现

页面设置:(一个textbox,三个button,一个listbox,一个openFileDialog,一个saveFileDialog)在这里插入图片描述
1选中文件并保存至listbox
(已拖入openFileDIalog控件),
创建 List Wenjian = new List();用于储存文件地址。对button1的点击事件设置如下内容:

 List<string> Wenjian = new List<string>();
 private void button1_Click(object sender, EventArgs e)
        {
            string g = textBox1.Text;//读入后缀名
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.Title = "选择文件";
            ofd.Multiselect = true;
            ofd.RestoreDirectory = true;
            ofd.Filter = "所选文件|*." + g + "|所有文件|*.*";
            ofd.ShowDialog();
            string[] path = ofd.FileNames;
            for (int i = 0; i < path.Length; i++)
            {
            listBox1.Items.Add(Path.GetDirectoryName(path[i])+"\\"+Path.GetFileName(path[i]));
            Wenjian.Add(path[i]);
            }
        }

此段实现运行时于textbox1中输入后缀名(如txt),打开一个openFileDialog栏,选中后将选中的文件的路径文件名打开并保存至listbox中。
2选中保存路径
(已拖入SaveFileDialog控件)
创建string;用于储存路径名。对button2的点击事件设置如下内容:

  string lujing = "";
  private void button2_Click(object sender, EventArgs e)
    {
        SaveFileDialog s1 = new SaveFileDialog();
        s1.Title = "保存文件位置";
        s1.Filter = "存储位置(*.)|*.";
        s1.FilterIndex = 1;
        s1.RestoreDirectory = false;
        s1.FileName = "存放于此处";
        if (s1.ShowDialog() == DialogResult.OK)
        {
            string localFilePath = s1.FileName.ToString();
            string[] words = localFilePath.Split('\\');
            lujing = words[0] + "\\";
            for (int a = 1; a < words.Length - 1; a++)
            {
                lujing = lujing + words[a] + "\\";
            }
            textBox1.Text = lujing;
        }
    }

3将listbox中存在的内容复制到button2点击后选中的地址中
创建函数


        public void CopyToFile(string sourceName, string folderPath)
        {
            //例子:
            //源文件路径
            //string sourceName = @"D:\Source\Test.txt";
            //目标路径:项目下的NewTest文件夹,(如果没有就创建该文件夹)
            //string folderPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "NewTest");

            if (!Directory.Exists(folderPath))
            {
                Directory.CreateDirectory(folderPath);
            }

            //当前文件如果不用新的文件名,那么就用原文件文件名
            string fileName = Path.GetFileName(sourceName);
            //这里可以给文件换个新名字,如下:
            //string fileName = string.Format("{0}.{1}", "newFileText", "txt");

            //目标整体路径
            string targetPath = Path.Combine(folderPath, fileName);

            //Copy到新文件下
            FileInfo file = new FileInfo(sourceName);
            if (file.Exists)
            {
                //true 为覆盖已存在的同名文件,false 为不覆盖
                file.CopyTo(targetPath, true);
            }
        }
        //来自https://blog.csdn.net/qq_38693757/article/details/115730668

对button3的点击事件进行设置如下内容

  if (listBox1.Items.Count == 0) ;
            else
            {
                while (listBox1.Items.Count > 0)
                { string source = listBox1.Items[0].ToString();
                    textBox1.Text = source;
                    CopyToFile(@source, lujing);
                    listBox1.Items.Remove(listBox1.Items[0]);
                }
            }

至此,一个简单的通过后缀名选择文件,随后将其复制到指定文件夹下的程序完成。

使用:

运行后在textbox中输入后缀名(如txt),如需选择全部文件可以输入*
随后点击button1,
浏览到文件选中,确定,
(文件添加到listbox中)
点击button2,
到达某一路径下,点击确定,
textbox中显示路径
点击button3,listbox中存在的文件路径及名称复制并粘贴到textbox中显示的路径中,(以原名保存)。

简单的扩展想法:

1,为listbox添加删除选中某一项的功能
2,通过添加字符串使openfileDialog,SavefileDialog可以打开到上一次关闭位置,现有代码会导致openfiledialog再次打开时为savefiledialog上一次打开位置,可以通过添加两个字符串解决。
3,优化界面。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值