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; }


}

 

 

Tags: