用C#實(shí)現(xiàn)文件夾拷貝
C#中沒有拷貝整個(gè)文件夾的方法,最近需要用到,就寫了一個(gè)Demo,拿出來跟大家分享一下
主要思想:
1、寫一個(gè)拷貝文件夾的函數(shù)CopyFolder,傳入源文件夾路徑和目的文件夾路徑
2、判斷目的文件夾路徑是否存在,如果不存在,創(chuàng)建此文件夾
3、獲取源文件夾下的所有文件,拷貝這些文件到目的文件夾
4、獲取源文件夾下的所有文件夾,循環(huán)調(diào)用CopyFolder(此處利用了遞歸)
代碼:
拷貝文件夾
- using System;using System.IO;namespace FolderService{
 - public class FolderService
 - {
 - static void Main(string[] args)
 - {
 - if (args.Length != 2)
 - {
 - Console.WriteLine("請(qǐng)輸入源文件夾地址和目的文件夾地址!");
 - return;
 - }
 - // 判斷源文件夾是否存在
 - if (!Directory.Exists(args[0])) {
 - Console.WriteLine("源文件夾不存在!");
 - return;
 - }
 - // 拷貝文件夾
 - FolderService copy = new FolderService();
 - string flag = copy.CopyFolder(args[0], args[1]);
 - Console.WriteLine(flag);
 - }
 - /// <summary>
 - /// Copy文件夾
 - /// </summary>
 - /// <param name="sPath">源文件夾路徑</param>
 - /// <param name="dPath">目的文件夾路徑</param>
 - /// <returns>完成狀態(tài):success-完成;其他-報(bào)錯(cuò)</returns>
 - public string CopyFolder(string sPath, string dPath)
 - {
 - string flag = "success";
 - try
 - {
 - // 創(chuàng)建目的文件夾
 - if (!Directory.Exists(dPath))
 - {
 - Directory.CreateDirectory
 - (dPath);
 - }
 - // 拷貝文件
 - DirectoryInfo sDir = new DirectoryInfo(sPath);
 - FileInfo[] fileArray = sDir.GetFiles();
 - foreach (FileInfo file in fileArray) {
 - file.CopyTo(dPath + "\\" + file.Name, true);
 - }
 - // 循環(huán)子文件夾
 - DirectoryInfo dDir = new DirectoryInfo(dPath);
 - DirectoryInfo[] subDirArray = sDir.GetDirectories();
 - foreach (DirectoryInfo subDir in subDirArray)
 - {
 - CopyFolder(subDir.FullName, dPath + "//" + subDir.Name);
 - }
 - }
 - catch (Exception ex)
 - {
 - flag = ex.ToString();
 - }
 - return flag;
 - }
 - }}
 
測試Dmo:
1、把代碼保存為FolderService.cs,把此cs文件放到H:\Program Files\Microsoft Visual Studio 9.0\VC下(具體根據(jù)VS安裝路徑不同,地址有所不同)
2、打開Visual Studio Tools中的Visual Studio 2008 Command Prompt,把FolderService.cs拖到此Command Prompt中,在路徑最前方加入csc+空格,回車編譯此程序,如下圖:
3、可以在目錄H:\Program Files\Microsoft Visual Studio 9.0\VC中看到生成了一個(gè)FolderService.exe文件,運(yùn)行此文件(打開cmd.exe,把FolderService.exe拖到cmd.exe中,加上參數(shù),回車),如下圖:
4、這時(shí)可以看到,E:\test目錄下的文件全部都拷貝到G:\test目錄下了
 
【編輯推薦】

















 
 
 


 
 
 
 