在C盤所在路徑1 搜指擴展名的所有文件,得到在所在文件的路徑,
然後用去掉擴展名的文件名,去搜D盤相同的路徑下是否有這個文件,
再將這個文件複製到C盤所在文件的路徑下
private void btnFindTxt_Click(object sender, EventArgs e)
{
//水平進度
//最大 最小值
progressBarControl1.Properties.Minimum = 0;
progressBarControl1.Position = 0;//當前值
progressBarControl1.Properties.ShowTitle = true;//是否顯示進度數據
//是否顯示百分比
progressBarControl1.Properties.PercentView = true;
//Stopwatch提供一組方法和屬性,可用於準確地測量運行時間
Stopwatch sw = new Stopwatch();
sw.Start();
string filepath = this.txtPath.Text.Trim();
string filepathD = this.txtPathD.Text.Trim();
string filename = this.txtFile.Text.Trim(); //如果模糊查找則文件名用*,如 *.xls、*bbb.rar
int n = Convert.ToInt32(txtInt.Text.Trim());
//string[] files = Directory.GetFiles(filepath + @"\", "*.xls");
//string[] files = Directory.GetFiles(filepath + @"\", filename); //查找時不包括子目錄
try
{
string[] files = Directory.GetFiles(filepath + @"\", filename, SearchOption.AllDirectories); //查找時包括子目錄
foreach (string file in files)
{
//string fileD = file.Substring(0, n); //取文件名的前n個字符
string filenameD = Path.GetFileNameWithoutExtension(file);
string[] fileDs = Directory.GetFiles(filepathD + @"\", filenameD, SearchOption.AllDirectories); //包括子目錄
foreach (string fileD in fileDs)
{
string pathD = Path.GetDirectoryName(fileD) + @"\";
string pathC = "C" + pathD.Remove(0, 1);
saveFile(pathC, fileD);
}
}
sw.Stop();
TimeSpan dt = sw.Elapsed;
progressBarControl1.Properties.Maximum = Convert.ToInt32(dt.TotalMilliseconds); //把用時 變成毫秒再轉化爲整數int
for (int i = 0; i < progressBarControl1.Properties.Maximum; i++)
{
//處理當前消息隊列中的所有windows消息
Application.DoEvents();
//當前線程掛起指定的時間,這個是爲了演示
//System.Threading.Thread.Sleep(12);
//執行步長
progressBarControl1.PerformStep();
}
MessageBox.Show("查找並複製成功");
}
catch
{
MessageBox.Show("數據異常或者有受權限限制受讀寫保護的子文件夾!");
}
}
public void saveFile(string path, string fileName)
{
FileInfo file = new FileInfo(fileName);
string newName = file.Name;
file.CopyTo(path + @"\" + newName, true);
}