文件批量转移其实并不算难,只需要做到以下几点↓
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转换成复制的方法就行了!
谢谢!