文件批量转移实现

本文详细介绍了如何使用C#编程实现批量文件转移的功能,包括选择文件夹、获取文件地址、调用File.Copy方法进行转移,并展示了相关代码示例。在主程序中,通过进度条和标签控件实时更新转移状态,确保用户能清晰了解操作进度。
摘要由CSDN通过智能技术生成

文件批量转移其实并不算难,只需要做到以下几点↓

1.找到要批量转移的文件

2.记录文件地址,要转移的地址

3.通过File.Copy这个方法进行转移

实践↓

1.先做一个界面

 

注意:label1那些是label控件,进度条是progress控件

在申明一个全局变量

        public string pageget { get; set; }
        public string pageset { get; set; }

其次再做一个文件夹选择(建议搞一个按钮,把这段一句放进去)

            FolderBrowserDialog dialog = new FolderBrowserDialog();
            dialog.Description = "请选择要复制的文件夹";
            if (dialog.ShowDialog() == DialogResult.OK)
            {
                pageget = dialog.SelectedPath;
            }
            FolderBrowserDialog dialg = new FolderBrowserDialog();
            dialg.Description = "请选择要放置的文件夹";
            if (dialog.ShowDialog() == DialogResult.OK)
            {
                pageset = dialog.SelectedPath;
            }

得到地址后就写入定义几个方法第一个

        static List<string> Director(string dir)
        {
            List<string> get = new List<string>();
            DirectoryInfo d = new DirectoryInfo(dir);
            FileSystemInfo[] fsinfos = d.GetFileSystemInfos();
            foreach (FileSystemInfo fsinfo in fsinfos)
            {
                if (fsinfo is DirectoryInfo)
                {
                    Director(fsinfo.FullName);
                }
                else
                {
                    get.Add(fsinfo.FullName);
                }
            }
            return get;
        }

        public string getspilt(string get)
        {
            string[] getline = get.Split('\\');
            string back = pageset +"\\"+ getline[getline.Length - 1];
            return back;
        }

第一个是查找文件夹中所有的地址

第二个是剪切这个地址为copy正规的地址

这样之后就可以写主程序了!

        private void Form2_Load(object sender, EventArgs e)
        {
            this.Show();
            label1.Text = "复制中的文件夹" + pageget;
            label2.Text = "转移中的文件夹" + pageset;
            label3.Text = "正在加载中";
            List<string> get = new List<string>();
            get = Director(pageget);

            progressBar1.Minimum = 0;
            progressBar1.Maximum = get.Count;
            progressBar1.Step = 2;
            label4.Text = "还剩余:" + Convert.ToString(get.Count);
            label5.Text = "总数:" + Convert.ToString(get.Count);
            int num = get.Count;
            string zhuanyi = "";
            for(int i = 0; i < get.Count; i++)
            {
                zhuanyi = getspilt(get[i]);
                //label3.Text = "正在转移:" + get[i];
                label3.Text = "正在转移:" + zhuanyi;
                try
                {
                    File.Copy(get[i], zhuanyi, true);
                }
                catch
                {
                    MessageBox.Show("opp转移过程中遇到问题,已自动退出");
                    break;
                    this.Close();
                }
                progressBar1.PerformStep();
                num = num - 1;
                label4.Text = "还剩余:" + Convert.ToString(num);
            }
        }

这样就可以实现基本转换了,效果图如下

 

复制也可以实现,只要把所有的copy转换成复制的方法就行了!

谢谢! 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值