但其實生成的安裝程式在預設條件碰到的限制不少,變成要利用VB或是C#等語言,
產生一個繼承class Installer,才能作很多額外的運作。
其中一項就是在User Interface使用Textbox擷取資訊,作為後面安裝的訊息。
而我是利用它來作其他資料的轉移目的地。可能覺得奇怪為什麼不用Browser選擇,
他裡面就是沒這個Interface可以用,頗糟糕。
變成要使用些C#語法去搬移檔案,不過也因此學到一些C# Syntax還蠻有趣的啦,
當成腦力激盪也不錯,比起上個專案都在一直trace code好多了。
下面就是參考了MSDN上面的作法更改成recursive的方式複製整個資料夾中的資料,
希望有緣人google到就拿去用吧!
使用方法recursive(原目錄, 目標目錄)
p.s. 網路上很多版本,可是都不是我要的,反倒是阿陸仔那邊很多。台灣設計者要加油。
//*********recursiveCopy***********
private void recursiveCopy(string sourcePath, string targetPath)
{
if (System.IO.Directory.Exists(sourcePath))
{
//copy directories
if (!System.IO.Directory.Exists(targetPath))
Directory.CreateDirectory(targetPath);
string[] dirs = System.IO.Directory.GetDirectories(sourcePath);
foreach (string d in dirs)
{
string nextSource = d + "\\";
string[] directName = d.Split("\\".ToCharArray());
string nextTarget = targetPath + directName[directName.Length - 1] + "\\";
recursiveCopy(nextSource, nextTarget);
}
//copy files
string[] files = System.IO.Directory.GetFiles(sourcePath);
foreach (string f in files)
{
string fileName = System.IO.Path.GetFileName(f);
string destFile = System.IO.Path.Combine(targetPath, fileName);
System.IO.File.Copy(f, destFile, true);
}
}
}//End recursiveCopy
參考資料:
http://msdn.microsoft.com/zh-tw/library/zd5e2z84(v=VS.80).aspx
http://msdn.microsoft.com/zh-tw/library/cc148994.aspx
3 意見
意見Thx
Replythanks!
Reply但是 string nextTarget = targetPath + directName[directName.Length - 1] + "\\";
好像少了一條斜線
string nextTarget = targetPath + "\\" + directName[directName.Length - 1] + "\\";
Thank you for your reply. 有點忘記當時當初實際應用上,targetPath是否有append一個backslash了。希望參考的人能注意到囉。
Reply