C#中複製指定資料夾下的所有資料夾目錄到指定資料夾中的方法。
public static void CopyFolder(string strFromPath,string strToPath)
{
//如果原始檔夾不存在,則建立
if (!Directory.Exists(strFromPath))
Directory.CreateDirectory(strFromPath);
}
//取得要複製的資料夾名
string strFolderName = strFromPath.Substring(strFromPath.LastIndexOf("\\") +
1,strFromPath.Length - strFromPath.LastIndexOf("\\") - 1);
//如果目標資料夾中沒有原始檔夾則在目標資料夾中建立原始檔夾
if (!Directory.Exists(strToPath + "\\" + strFolderName))
Directory.CreateDirectory(strToPath + "\\" + strFolderName);
//建立陣列儲存原始檔夾下的檔名
string[] strFiles = Directory.GetFiles(strFromPath);
//迴圈複製檔案
for(int i = 0;i < strFiles.Length;i++)
//取得複製的檔名,只取檔名,地址截掉。
string strFileName = strFiles[i].Substring(strFiles[i].LastIndexOf("\\") + 1,strFiles[i].Length - strFiles[i].LastIndexOf("\\") - 1);
//開始複製檔案,true表示覆蓋同名檔案
File.Copy(strFiles[i],strToPath + "\\" + strFolderName + "\\" + strFileName,true);
//建立DirectoryInfo例項
DirectoryInfo dirInfo = new DirectoryInfo(strFromPath);
//取得原始檔夾下的所有子資料夾名稱
DirectoryInfo[] ZiPath = dirInfo.GetDirectories();
for (int j = 0;j < ZiPath.Length;j++)
//獲取所有子資料夾名
string strZiPath = strFromPath + "\\" + ZiPath[j].ToString();
//把得到的子資料夾當成新的原始檔夾,從頭開始新一輪的複製
CopyFolder(strZiPath,strToPath + "\\" + strFolderName);
C#中複製指定資料夾下的所有資料夾目錄到指定資料夾中的方法。
public static void CopyFolder(string strFromPath,string strToPath)
{
//如果原始檔夾不存在,則建立
if (!Directory.Exists(strFromPath))
{
Directory.CreateDirectory(strFromPath);
}
//取得要複製的資料夾名
string strFolderName = strFromPath.Substring(strFromPath.LastIndexOf("\\") +
1,strFromPath.Length - strFromPath.LastIndexOf("\\") - 1);
//如果目標資料夾中沒有原始檔夾則在目標資料夾中建立原始檔夾
if (!Directory.Exists(strToPath + "\\" + strFolderName))
{
Directory.CreateDirectory(strToPath + "\\" + strFolderName);
}
//建立陣列儲存原始檔夾下的檔名
string[] strFiles = Directory.GetFiles(strFromPath);
//迴圈複製檔案
for(int i = 0;i < strFiles.Length;i++)
{
//取得複製的檔名,只取檔名,地址截掉。
string strFileName = strFiles[i].Substring(strFiles[i].LastIndexOf("\\") + 1,strFiles[i].Length - strFiles[i].LastIndexOf("\\") - 1);
//開始複製檔案,true表示覆蓋同名檔案
File.Copy(strFiles[i],strToPath + "\\" + strFolderName + "\\" + strFileName,true);
}
//建立DirectoryInfo例項
DirectoryInfo dirInfo = new DirectoryInfo(strFromPath);
//取得原始檔夾下的所有子資料夾名稱
DirectoryInfo[] ZiPath = dirInfo.GetDirectories();
for (int j = 0;j < ZiPath.Length;j++)
{
//獲取所有子資料夾名
string strZiPath = strFromPath + "\\" + ZiPath[j].ToString();
//把得到的子資料夾當成新的原始檔夾,從頭開始新一輪的複製
CopyFolder(strZiPath,strToPath + "\\" + strFolderName);
}
}