iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 15
0
Software Development

轉職初新者系列-C#初學攻略心法系列 第 15

[2018鐵人賽Day15]C#初學攻略心法-小技巧,指定檔案到指定位置

不愧是有資格當勇者的人,孫某甘拜下風
嘿,呼叫黃興,黃興幫忙從過去傳送個內功心法過來!
黃興回應:好吧,那我傳一篇韻迴龍轉法給我們的小兄弟

(過一會兒,天雷勾動地火,風起雲湧)

咦?怎什麼鬼都沒有?
大哥,你們兩個是來亂的吧...

怎連驗證機制都沒有寫好...(默)
突然有一陣厚怕,你確定你們等等出的去我的夢?而我醒得過來?

這個...呵呵!
呵啥鬼啊,蛟~辰巳~能把我打醒嗎...讓我快脫離這個惡夢啊!

==============================

Path.Combine 方法:將多個字串合併為一個路徑
Directory.Exists 方法 (String):判斷指定路徑是否參考磁碟上的現有目錄
Directory.CreateDirectory 方法:在指定的路徑中建立所有目錄

[Step by Step簡易實戰]
Step1.
請建立個新方案為UploadFileFunction方案

https://ithelp.ithome.com.tw/upload/images/20180103/20091333KtK5qLtHD8.jpg

Step2.
請在工具箱,拉出六個Label、四個TextBox、一個Button
並在Button點選擊兩下,等等來撰寫相關Code

TextBox方面
來源位置的TextBox請命名為sourcePath
目標位置的TextBox請命名為targetPath
來源檔名的TextBox請命名為sourceFileName
目標檔名的TextBox請命名為targetFileName

https://ithelp.ithome.com.tw/upload/images/20180103/20091333r4YLBWEjiq.jpg

Step3.
填入以下Code,並引入相關參考組件

//驗證是否都有填寫
if (!String.IsNullOrEmpty(sourcePath.Text) && !String.IsNullOrEmpty(sourceFileName.Text) && !String.IsNullOrEmpty(targetPath.Text) && !String.IsNullOrEmpty(targetFileName.Text))
{
	//組合檔案來源位置字串
	string sourceFile = Path.Combine(sourcePath.Text, sourceFileName.Text);

	//組合檔案目的位置字串
	string destFile = Path.Combine(targetPath.Text, targetFileName.Text);

	//檢查是否有資料夾位置
	if (!Directory.Exists(targetPath.Text))
	{
		//若沒有則建立資料夾
		Directory.CreateDirectory(targetPath.Text);
	}

	//複製所指定檔案到指定位置
	File.Copy(sourceFile, destFile, true);
}
else
{
	MessageBox.Show("請將所有TextBox填寫完畢");
}

https://ithelp.ithome.com.tw/upload/images/20180103/200913335kp3OI4M93.jpg

https://ithelp.ithome.com.tw/upload/images/20180103/20091333mwq3zXYSRy.jpg

Step4.
按下F5執行程式,測試看看是否功能正確吧

https://ithelp.ithome.com.tw/upload/images/20180103/20091333KlHgHnQKwk.jpg

https://ithelp.ithome.com.tw/upload/images/20180103/20091333sbqcFoPsup.jpg

https://ithelp.ithome.com.tw/upload/images/20180103/20091333FcmFIwkTwk.jpg

https://ithelp.ithome.com.tw/upload/images/20180103/20091333ZqBSTjz8kD.jpg

==============================

呃,韻迴龍轉法Get
小兄弟,但願你好好運用,有緣再見
(你們倆給我有多遠滾多遠,最好別再出現!!!)

參考資料:
Microsoft Path.Combine 方法
https://msdn.microsoft.com/zh-tw/library/system.io.path.combine(v=vs.110).aspx

Microsoft Directory.Exists 方法 (String)
https://msdn.microsoft.com/zh-tw/library/system.io.directory.exists(v=vs.110).aspx

Microsoft Directory.CreateDirectory 方法
https://msdn.microsoft.com/zh-tw/library/system.io.directory.createdirectory(v=vs.110).aspx

Microsoft File.Copy 方法
https://msdn.microsoft.com/zh-tw/library/system.io.file.copy(v=vs.110).aspx


上一篇
[2018鐵人賽Day14]C#初學攻略心法-小技巧,召喚條件民國年
下一篇
[2018鐵人賽Day16]C#初學攻略心法-入村費,指定檔案給予下載
系列文
轉職初新者系列-C#初學攻略心法30

1 則留言

0
blackmorain
iT邦新手 5 級 ‧ 2018-03-31 16:13:59

可以請問 照您的輸入後
出現這個 但一直找不到解決方法

請問大大知道原因出在哪嗎?

Old Siao iT邦研究生 1 級‧ 2018-04-02 08:45:54 檢舉

不好意思,這樣的線索稍難判斷錯誤點
請先確定畫面上的TextBox是否都有拉出,並設置好名稱

或者,請嘗試將滑鼠移到
sourcePath、targetPath、sourceFileName、targetFileName
並停留後會出現您的名稱是什麼樣的物件

也可以在其他地方打名稱.看會不會出現提示框
(EX:sourcePath.)

附上此篇的Code供您參考
https://1drv.ms/u/s!AmS7DN8lJm-Hhn1Qgwh3hrnTY585

感謝您!!!

我要留言

立即登入留言