使用复制实现,删除原位置没写.
private void 双击窗体(object sender, EventArgs e)
{
this.Name = "微佛诞提示日历时间";
if (MessageBox.Show("要执行软件搬家?", "友情提醒:", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
SaveFileDialog 搬家位置 = new SaveFileDialog();
搬家位置.InitialDirectory = "D:";
搬家位置.FileName = this.Name;
if (!System.IO.Directory.Exists(搬家位置.InitialDirectory + "\\" + 搬家位置.FileName))
{
搬家位置.Title = "请选择软件新家的位置:";
搬家位置.ShowDialog();
System.IO.Directory.CreateDirectory(搬家位置.FileName);
}
else 搬家位置.FileName =搬家位置.InitialDirectory + "\\" + 搬家位置.FileName;
foreach (string 文件 in System.IO.Directory.GetFiles(@System.Environment.CurrentDirectory, "*.*", System.IO.SearchOption.AllDirectories))
{
string 位置 = 文件.Replace(System.Environment.CurrentDirectory, 搬家位置.FileName);
if (位置.Replace(搬家位置.FileName + "\\", "").Contains("\\"))
System.IO.Directory.CreateDirectory(位置.Substring(0, 位置.LastIndexOf("\\")));
System.IO.File.Copy(文件, 位置, true);
}
}
}
添加删除文件3种方式:
using System.Runtime.InteropServices;//c#在桌面中绘图 https://www.cnblogs.com/kq2012/articles/2707701.html
using Microsoft.VisualBasic.FileIO;//首先对项目添加名为Microsoft.VisualBasic.dll的引用,然后添加命名空间 https://bbs.csdn.net/topics/390835339 https://www.cnblogs.com/lazycoding/archive/2012/09/25/2702007.html
private void 双击窗体(object sender, EventArgs e)
{
this.Name = "微佛诞提示日历时间";
if (MessageBox.Show("要执行软件搬家?", "友情提醒:", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
SaveFileDialog 搬家位置 = new SaveFileDialog();
搬家位置.InitialDirectory = "D:";
搬家位置.FileName = this.Name;
if (!System.IO.Directory.Exists(搬家位置.InitialDirectory + "\\" + 搬家位置.FileName))
{
搬家位置.Title = "请选择软件新家的位置:";
搬家位置.ShowDialog();
System.IO.Directory.CreateDirectory(搬家位置.FileName);
}
else 搬家位置.FileName = 搬家位置.InitialDirectory + "\\" + 搬家位置.FileName;
foreach (string 文件 in System.IO.Directory.GetFiles(@System.Environment.CurrentDirectory, "*.*", System.IO.SearchOption.AllDirectories))
{
string 新位置 = 文件.Replace(System.Environment.CurrentDirectory, 搬家位置.FileName);
if (新位置.Replace(搬家位置.FileName + "\\", "").Contains("\\"))
System.IO.Directory.CreateDirectory(新位置.Substring(0, 新位置.LastIndexOf("\\")));
System.IO.File.Copy(文件, 新位置, true);
//System.IO.File.Delete(文件);
//new System.IO.FileInfo(文件).Delete();
FileSystem.DeleteFile(文件, UIOption.OnlyErrorDialogs, RecycleOption.SendToRecycleBin);
string[] 文件夹集 = new string[] { };
文件夹集 = 文件夹集.Concat(new string[] { 文件.Substring(0, 文件.LastIndexOf("\\")) }).ToArray();
foreach (string 文件夹 in 文件夹集.Reverse()) FileSystem.DeleteDirectory(文件夹, UIOption.OnlyErrorDialogs, RecycleOption.SendToRecycleBin);
}
}
}