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: