溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

C#怎么拷貝整個(gè)文件夾及子目錄和其中文件

發(fā)布時(shí)間:2021-08-25 17:35:50 來源:億速云 閱讀:152 作者:chen 欄目:編程語言

這篇文章主要講解了“C#怎么拷貝整個(gè)文件夾及子目錄和其中文件”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“C#怎么拷貝整個(gè)文件夾及子目錄和其中文件”吧!

下面一段代碼給大家介紹C#拷貝整個(gè)文件夾以及子目錄和其中文件,具體代碼如下所示:

private void CopyDirectory( string srcPath, string desPath)   {    string folderName = srcdir.Substring(srcdir.LastIndexOf( "\\" )+1);    string desfolderdir = desPath + "\\" + folderName;    if (desdir.LastIndexOf( "\\" ) == (desPath.Length - 1))    {     desfolderdir = desPath + folderName;    }    string [] filenames = Directory.GetFileSystemEntries(srcPath);    foreach ( string file in filenames)     {     if (Directory.Exists(file))      {      string currentdir = desfolderdir + "\\" + file.Substring(file.LastIndexOf( "\\" ) + 1);      if (!Directory.Exists(currentdir))      {       Directory.CreateDirectory(currentdir);      }      CopyDirectory(file, desfolderdir);     }     else      {      string srcfileName = file.Substring(file.LastIndexOf( "\\" )+1);      srcfileName = desfolderdir + "\\" + srcfileName;      if (!Directory.Exists(desfolderdir))      {       Directory.CreateDirectory(desfolderdir);      }           File.Copy(file, srcfileName);     }    }    }

ps:C# 拷貝指定文件夾下的所有文件及其文件夾到指定目錄

要拷貝的文件及其文件夾結(jié)構(gòu)

其中.lab文件不能覆蓋

/// <summary>/// 拷貝oldlab的文件到newlab下面/// </summary>/// <param name="sourcePath">lab文件所在目錄(@"~\labs\oldlab")</param>/// <param name="savePath">保存的目標(biāo)目錄(@"~\labs\newlab")</param>/// <returns>返回:true-拷貝成功;false:拷貝失敗</returns>public bool CopyOldLabFilesToNewLab(string sourcePath, string savePath){  if (!Directory.Exists(savePath))  {    Directory.CreateDirectory(savePath);  }  #region //拷貝labs文件夾到savePath下  try  {    string[] labDirs = Directory.GetDirectories(sourcePath);//目錄    string[] labFiles = Directory.GetFiles(sourcePath);//文件    if (labFiles.Length > 0)    {      for (int i = 0; i < labFiles.Length; i++)      {        if (Path.GetExtension(labFiles[i]) != ".lab")//排除.lab文件        {          File.Copy(sourcePath + "\\" + Path.GetFileName(labFiles[i]), savePath + "\\" + Path.GetFileName(labFiles[i]), true);        }      }    }    if (labDirs.Length > 0)    {      for (int j = 0; j < labDirs.Length; j++)      {        Directory.GetDirectories(sourcePath + "\\" + Path.GetFileName(labDirs[j]));        //遞歸調(diào)用        CopyOldLabFilesToNewLab(sourcePath + "\\" + Path.GetFileName(labDirs[j]), savePath + "\\" + Path.GetFileName(labDirs[j]));      }    }  }  catch (Exception)  {    return false;  }  #endregion  return true;}

感謝各位的閱讀,以上就是“C#怎么拷貝整個(gè)文件夾及子目錄和其中文件”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)C#怎么拷貝整個(gè)文件夾及子目錄和其中文件這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI