c#使用file.copy實(shí)現(xiàn)文件備份示例
步驟:
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 = @"..\..\Dir\directory.txt";
string srcPath = "";
string aimPath = "";
string KeyWords = "";
List<string> KeyFloderList = new List<string>();
if (File.Exists(txtPath) == false)
{
Console.WriteLine("directory.txt不存在,無(wú)法獲取Copy路徑");
}
else
{
GetCopyPath(txtPath, out srcPath, out aimPath, out KeyWords);
if (srcPath == "" || aimPath == "" || KeyWords == "")
{
Console.WriteLine("請(qǐng)?jiān)赿irectory.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))// 先當(dāng)作目錄處理如果存在這個(gè)目錄就遞歸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("請(qǐng)?jiān)赿irectory.txt,輸入Copy的源文件夾,目的文件,和KeyWords");
}
}
catch (Exception ex)
{
throw ex;
}
}
}
}
相關(guān)文章
winfrom 打印表格 字符串的封裝實(shí)現(xiàn)代碼 附源碼下載
以前寫打印都是根據(jù)打印機(jī)的型號(hào),找開(kāi)發(fā)類庫(kù)。然后在此基礎(chǔ)上開(kāi)發(fā)。寫的多了自然就想到了封裝。這是還是想到了微軟,微軟封裝了PrintDocument的打印類。但這只是在低層對(duì)串口的封裝2013-02-02HighCharts圖表控件在ASP.NET WebForm中的使用總結(jié)(全)
這篇文章主要介紹了HighCharts圖表控件在ASP.NET WebForm中的使用總結(jié)(全),需要的朋友可以參考下2015-08-08C#實(shí)現(xiàn)集合轉(zhuǎn)換成json格式數(shù)據(jù)的方法
這篇文章主要介紹了C#實(shí)現(xiàn)集合轉(zhuǎn)換成json格式數(shù)據(jù)的方法,涉及C#針對(duì)dataTable、Enumerable及Json格式數(shù)據(jù)的遍歷及轉(zhuǎn)換操作相關(guān)技巧,需要的朋友可以參考下2016-07-07