c#使用file.copy实现文件备份示例
c#使用file.copy实现文件备份示例
发布时间:2016-12-28 来源:查字典编辑
摘要:步骤:1、遍历D盘Source文件夹找出所有名称包含LTE的文件,文件路径存放到List中2、遍历List,把所有文件Copy到E盘的备份文...

步骤:

1、遍历D盘Source文件夹找出所有名称包含LTE的文件,文件路径存放到List<string>中

2、遍历List<string>,把所有文件Copy到E盘的备份文件夹中

复制代码 代码如下:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.DirectoryServices;

using System.IO;

namespace CopyLTE

{

class Program

{

static void Main(string[] args)

{

try

{

string txtPath = @"....Dirdirectory.txt";

string srcPath = "";

string aimPath = "";

string KeyWords = "";

List<string> KeyFloderList = new List<string>();

if (File.Exists(txtPath) == false)

{

Console.WriteLine("directory.txt不存在,無法獲取Copy路徑");

}

else

{

GetCopyPath(txtPath, out srcPath, out aimPath, out KeyWords);

if (srcPath == "" || aimPath == "" || KeyWords == "")

{

Console.WriteLine("請在directory.txt,輸入Copy的源文件夾,目的文件,和KeyWords");

}

else

{

DirectoryInfo FolderSource = new DirectoryInfo(srcPath);

foreach (DirectoryInfo NextFolder in FolderSource.GetDirectories())

{

if (NextFolder.FullName.Contains(KeyWords))

{

KeyFloderList.Add(NextFolder.FullName);

}

}

}

}

if (KeyFloderList.Count > 0)

{

foreach (string FloderPath in KeyFloderList)

{

//Copy From Source To Backup

CopyDirectory(FloderPath, aimPath);

}

}

}

catch (Exception ex)

{

throw ex;

}

}

//

private static void CopyDirectory(string srcdir, string desdir)

{

string folderName = srcdir.Substring(srcdir.LastIndexOf("") + 1);

string desfolderdir = desdir + "" + folderName;

if (desdir.LastIndexOf("") == (desdir.Length - 1))

{

desfolderdir = desdir + folderName;

}

string[] filenames = Directory.GetFileSystemEntries(srcdir);

foreach (string file in filenames)// 遍历所有的文件和目录

{

if (Directory.Exists(file))// 先当作目录处理如果存在这个目录就递归Copy该目录下面的文件

{

string currentdir = desfolderdir + "" + file.Substring(file.LastIndexOf("") + 1);

if (!Directory.Exists(currentdir))

{

Directory.CreateDirectory(currentdir);

}

CopyDirectory(file, desfolderdir);

}

else // 否则直接copy文件

{

string srcfileName = file.Substring(file.LastIndexOf("") + 1);

srcfileName = desfolderdir + "" + srcfileName;

if (File.Exists(srcfileName))

{

File.Delete(srcfileName); //Delete Old Files

}

if (!Directory.Exists(desfolderdir))

{

Directory.CreateDirectory(desfolderdir);

}

File.Copy(file, srcfileName);

}

}

}

//取得路徑

public static void GetCopyPath(string strTxt, out string From, out string To, out string keyWords)

{

try

{

string[] stringLines = File.ReadAllLines(strTxt, Encoding.Default);

if (stringLines.Length >= 3)

{

From = stringLines[0].ToString();

To = stringLines[1].ToString();

keyWords = stringLines[2].ToString();

}

else

{

From = "";

To = "";

keyWords = "";

Console.WriteLine("請在directory.txt,輸入Copy的源文件夾,目的文件,和KeyWords");

}

}

catch (Exception ex)

{

throw ex;

}

}

}

}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新C#教程学习
热门C#教程学习
编程开发子分类