在.Net 裡,C#沒有提供可以跨磁區移動資料夾的函數,所以只好自己寫啦!
是有一個指令叫做Move的啦,不過他只能限定你的資料夾移動範圍為
同一個磁區,也就是在C槽裡的資料夾就只能移到同樣為C槽裡,
在D槽裡的資料夾就只能移到同樣為D槽裡,所謂的跨磁區就是可從C移到E
用的方法就是先複製過去,然後再刪掉原來的資料夾
又因為這是用遞迴寫法,所以資料夾裡面的所有檔案和所有資料夾都可以移過去
只要傳入兩個變數,就是要移動的資料夾的位址跟要移動到哪的位址給函數就好了
阿如果目的位址裡要放的是原始資料夾的整個資料夾的話
就在呼叫時加這兩行就好
DirectoryInfo srcDirectory = new DirectoryInfo(SourcePath);
DestinationPath = DestinationPath + Path.DirectorySeparatorChar + srcDirectory.Name;
然後把DestinationPath 傳進去
public void CopyDirectory(string SourceFolder,string DestinationFolder)
{
if (Directory.Exists(SourceFolder) == true)
{
if (Directory.Exists(DestinationFolder) == false)
{
Directory.CreateDirectory(DestinationFolder);
}
DirectoryInfo srcDirectory = new DirectoryInfo(SourceFolder);
foreach (FileInfo fi in srcDirectory.GetFiles())
{
try
{
//FullName是檔案的完整路徑位址喔,Name才是檔案的名字
//Path.DirectorySeparatorChar是路徑裡的斜線啦
//最後面的true是是否覆蓋相同的檔案
File.Copy(fi.FullName, DestinationFolder + Path.DirectorySeparatorChar + fi.Name,true);
}
catch(Exception e)
{
}
}
foreach (DirectoryInfo di in srcDirectory.GetDirectories())
{
try
{
CopyDirectory(di.FullName, DestinationFolder + Path.DirectorySeparatorChar + di.Name);
}
catch(Exception e)
{
}
}
}
}
- Jun 30 Tue 2009 18:31
(C#)複製移動資料夾,可跨磁區移動,包含遞迴
全站熱搜
留言列表
發表留言