作下對文件複製操做相關的筆記:spa
/// <summary> /// 文件幫助類 /// </summary> public class FileHelper { /// <summary> /// 複製一個目錄下全部文件到一個新目錄下 /// </summary> /// <param name="copyPath">原目錄</param> /// <param name="newFilePathFunc">新目錄生成方法</param> /// <param name="isCopySubFolder">是否複製子文件夾內的文件</param> /// <param name="isOverwrite">可選:是否覆蓋(默認覆蓋)</param> public static void CopyFileList(string copyPath, Func<string, string> newFilePathFunc, bool isCopySubFolder = true, bool isOverwrite = true) { //複製當前目錄下全部文件到新目錄中 List<string> fileList = Directory.GetFiles(copyPath).ToList(); foreach (var filePath in fileList) { string newFilePath = newFilePathFunc(filePath); string newFileDirectory = newFilePath.Substring(0, newFilePath.LastIndexOf('\\') + 1); if (!Directory.Exists(newFileDirectory)) { Directory.CreateDirectory(newFileDirectory); } if (isOverwrite || !File.Exists(newFilePath)) { File.Copy(filePath, newFilePath, isOverwrite); } } //複製子目錄下全部文件到新目錄中 if (isCopySubFolder) { List<string> subFolderList = Directory.GetDirectories(copyPath).ToList(); foreach (var subFolder in subFolderList) { FileHelper.CopyFileList(subFolder, newFilePathFunc, isCopySubFolder, isOverwrite); } } } /// <summary> /// 複製一組文件到一個新目錄下 /// </summary> /// <param name="filePathList">文件列表</param> /// <param name="newFilePathFunc">新目錄生成方法</param> /// <param name="isOverwrite">可選:是否覆蓋(默認覆蓋)</param> public static void CopyFileList(List<string> filePathList, Func<string, string> newFilePathFunc, bool isOverwrite = true) { //將上月保存未改變多幣種數據複製到本月中(本月已存在多幣種數據不覆蓋) foreach (var filePath in filePathList) { string newFilePath = newFilePathFunc(filePath); string newFileDirectory = newFilePath.Substring(0, newFilePath.LastIndexOf('\\') + 1); if (!Directory.Exists(newFileDirectory)) { Directory.CreateDirectory(newFileDirectory); } if (isOverwrite || !File.Exists(newFilePath)) { File.Copy(filePath, newFilePath, isOverwrite); } } } }