C#,根據路徑獲取某個數字開頭的所有文件夾,並獲取最新文件夾進行替換文件
項目需求獲取某路徑下為1開頭文件夾,並替換最新文件夾內容,話不多說,上代碼
private void Form1_Load(object sender, EventArgs e) { try { string str1 = Properties.Settings.Default.path;//此路徑例如:D:\測試\DLL\xxx.dll this.textBox1.Text = str1;string str3 = Properties.Settings.Default.ReplacePath2;//此路徑例如為:D:\測試\jiu2 string result = PathNew(str3); CopyToFile(this.textBox1.Text, result); } catch (Exception ex) { LogWrite.AddLog(ex.Message); } } /// <summary> /// 拷貝文件到另一個文件夾下 /// </summary> /// <param name="sourceName">源文件路徑(指定到替換dll的名稱)</param> /// <param name="folderPath">需替換的文件路徑(指定到目標文件夾路徑)</param> public void CopyToFile(string sourceName, string ces) { try { LogWrite.AddLog("CopyToFile入參:"+ sourceName+"|"+ ces); //當前文件如果不用新的文件名,那麼就用原文件文件名 string fileName = Path.GetFileName(sourceName); //這裡可以給文件換個新名字,如下: //string fileName = string.Format("{0}.{1}", "newFileText", "txt"); //目標整體路徑 string targetPath2 = Path.Combine(ces, fileName); //Copy到新文件下 FileInfo file = new FileInfo(sourceName); if (file.Exists) { //true 為覆蓋已存在的同名文件,false 為不覆蓋 file.CopyTo(targetPath2, true); LogWrite.AddLog("CopyToFile替換成功"); } } catch (Exception ex) { LogWrite.AddLog("CopyToFile異常錯誤" + ex.Message); } }
/// <summary>
/// 根據指定路徑獲取最新文件夾路徑
/// </summary>
/// <param name=”path”></param>
/// <returns></returns>
public string PathNew(string path)
{
string result = string.Empty;
try
{
DirectoryInfo directoryInfo = new DirectoryInfo(path);
DirectoryInfo[] directoryInfos = directoryInfo.GetDirectories();//根據指定路徑獲取所有文件夾
string[] dirs2 = Directory.GetDirectories(path, “1*”);//獲取1開頭的文件夾
List<SubjectEdit> list_Subject = new List<SubjectEdit>();
for (int i = 0; i < dirs2.Length; i++)
{
SubjectEdit listset = null;//初始化類
listset = new SubjectEdit();//實例化類,給其信息
listset.ProjTmName = dirs2[i];
listset.time = Directory.GetCreationTime(dirs2[i]);
list_Subject.Add(listset);
}
var listTmp = list_Subject.OrderByDescending(o => o.time).ToList();//降序
//SortAsFolderCreationTime(ref directoryInfos);
result = listTmp[0].ProjTmName;
//result = directoryInfos[0].Name;
LogWrite.AddLog(“PathNew最新文件夾名為” + result);
}
catch (Exception ex)
{
LogWrite.AddLog(“PathNew異常錯誤” + ex.Message);
//MessageBox.Show(ex.Message);
}
return result;
}
public class SubjectEdit
{
/// <summary>
/// ID
/// </summary>
public int ProjTmId { get; set; }
public DateTime time { get; set; }
/// <summary>
/// 名稱
/// </summary>
public string ProjTmName { get; set; }
}