C#.NET實(shí)現文件夾的復制
2008-07-03
.NET只提供了文件的Copy方法,但卻沒(méi)有提供文件夾的Copy方法,經(jīng)過(guò)一天的努力,終于搞定.現貼出主要代碼供大家參考,歡迎大家提出建議. 代碼如下: public int DirectoryName(string DirectoryPath)//獲取文件夾名,截取“\”
{
int j = 0; char[] c = DirectoryPath.ToCharArray();
for (int i = c.Length - 1; i >= 0; i--)//從后面截取
{
j = i;
if (c[i] == '\\')
{
break;//遇"\"調處,并返回"\"的位置
}
}
return j+1;
}
public void CopyDirectory(string DirectoryPath,string DirAddress)//復制文件夾,
{
#region//遞歸
//獲取文件名方法一:用上函數
//string s = DirectoryPath.Substring(DirectoryName(DirectoryPath));//獲取文件夾名
//獲取文件名方法二:用string類(lèi)的LastIndexOf()和Substring()函數
int index = DirectoryPath.LastIndexOf('\\');
string s=DirectoryPath.Substring(index+1);
if (Directory.Exists(DirAddress + "\\" + s))
{
Directory.Delete(DirAddress + "\\" + s,true);//若文件夾存在,不管目錄是否為空,刪除
Directory.CreateDirectory(DirAddress + "\\" + s);//刪除后,重新創(chuàng )建文件夾
}
else
{
Directory.CreateDirectory(DirAddress + "\\" + s);//文件夾不存在,創(chuàng )建
}
DirectoryInfo DirectoryArray = new DirectoryInfo(DirectoryPath);
FileInfo[] Files = DirectoryArray.GetFiles();//獲取該文件夾下的文件列表
DirectoryInfo[] Directorys = DirectoryArray.GetDirectories();//獲取該文件夾下的文件夾列表
foreach (FileInfo inf in Files)//逐個(gè)復制文件
{
File.Copy(DirectoryPath + "\\" + inf.Name, DirAddress + "\\" + s + "\\" + inf.Name);
}
foreach (DirectoryInfo Dir in Directorys)//逐個(gè)獲取文件夾名稱(chēng),并遞歸調用方法本身
{
CopyDirectory(DirectoryPath + "\\" + Dir.Name, DirAddress + "\\" + s);
}
#endregion
}
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。