iT邦幫忙

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

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

[2018鐵人賽Day16]C#初學攻略心法-入村費,指定檔案給予下載

  • 分享至 

  • xImage
  •  

主人,你夢到什麼了,春夢嗎?(嘿嘿)
你們倆...(呃,我是遭誰惹誰了,遇到兩個瘋子,還有兩隻笨夥伴)

算了,不說了,來陪我對練一下
蛟&辰巳:那我們就不客氣了,會手下留情的!

雷雲密佈,龍鳴震耳欲壟
小心了,龍鳴雷轟炮!

蛟身顏轉為墨綠,身鱗豎起
毒蛟嘯息!

尼瑪的,激光炮就激光炮,來個這麼帥的名字做啥!
另一個也是,不就毒霧嗎,你們倆哪個腦子不對勁?

(運轉身法,韻迴龍轉)
身如龍,韻迴逆轉
一瞬間避開了所有攻擊,出現在蛟的背後

新技能,五拳憲法,絕技能力全開
(出現了莫名的機器聲音,請輸入啟動代碼年分)
沒問題,1912,Send!
(輸入正確,將行最大輸出)
五拳憲法,行正靂法拳!
(短短不到兩個呼吸的時間,已看到蛟在地面上不斷抽搐)

辰巳面容發白,全身顫抖,面如死灰,一點都沒龍蛇的威嚴模樣
心裡暗自想著:不妙,不是這麼欺負人的吧,不過是一夜春夢嗎...

轉眼已在愣住辰巳面前
絲發烤世奸鍘,三拳分立

五拳憲法,最強威能,鐵拳無敵!

Stop!我我我...我認輸!(辰巳臉色慘白的喊著)
看來,那兩個老頭給的絕招還挺有用的

(旅程繼續,沿途遇到的幾乎都是一拳一隻,一拳一片,暢通無阻)
但卻看到很奇耙的一幕,看到兩隻小寵物在後頭互相緊緊抱著,眼神恐懼地看著前方的一幕幕光景
有需要這麼害怕嗎?(菸~)

(到了第二個目的地,賢者村)

小子,要入村很簡單,做支簡單的功能即可(守衛敘說著)
唷,什麼功能啊,說來聽聽?

指定檔案給予下載,需跳出視窗給予選擇儲存位置
這你應該辦的到吧,這是我們入村的最低限度了

呃...好吧,我試看看!

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

SaveFileDialog:提示使用者選取儲存檔案的位置
FileInfo:提供建立、複製、刪除、移動和開啟檔案的屬性和執行個體方法,並協助建立 FileStream 物件

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

https://ithelp.ithome.com.tw/upload/images/20180104/20091333ez6TTRJgjN.jpg

Step2.
請在工具箱,拉出四個Label、四個TextBox、一個Button

TextBox方面
限定搜尋副檔名的TextBox請命名為windowFilter
視窗標題的TextBox請命名為windowTitle
預設檔名的TextBox請命名為defaultFileName
目標檔名的TextBox請命名為targetFileName

https://ithelp.ithome.com.tw/upload/images/20180104/20091333izb768W2I1.jpg

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

/// <summary>
/// 指定檔案給予下載
/// </summary>
/// <param name="windowFilter">開窗限定搜尋副檔名(說明文字|指定格式 EX:Excel|*.xlsx)</param>
/// <param name="windowTitle">開窗標題</param>
/// <param name="defaultFileName">開窗預設給予的檔案名稱</param>
/// <param name="targetFileName">目標檔案相對位置</param>
public void SaveFile(string windowFilter, string windowTitle, string defaultFileName, string targetFileName)
{
	SaveFileDialog saveFileDialogFunction = new SaveFileDialog();
	saveFileDialogFunction.Filter = windowFilter; //開窗搜尋副檔名
	saveFileDialogFunction.Title = windowTitle; //開窗標題
	saveFileDialogFunction.FileName = defaultFileName; //開窗預設給予的檔案名稱
	if (saveFileDialogFunction.ShowDialog() == DialogResult.OK)
	{
		if (saveFileDialogFunction.FileName != "")
		{
			string NowPath = Directory.GetCurrentDirectory(); //目前程式所在目錄
			string TargetFile = targetFileName; //目標檔案相對位置
			string FormDirectory = NowPath + TargetFile; //目標檔案完整路徑
			string ToDirectory = @saveFileDialogFunction.FileName; //將儲存檔案的目的地完整路徑(包含檔名)

			FileInfo FileInfoValue = new FileInfo(FormDirectory);
			FileInfoValue.CopyTo(ToDirectory, true);
		}
	}
}

https://ithelp.ithome.com.tw/upload/images/20180104/20091333GfntuWvuKF.jpg

https://ithelp.ithome.com.tw/upload/images/20180104/20091333mYLJZjRUuX.jpg

Step4.
在Button點選擊兩下,等等來撰寫相關Code

if (!String.IsNullOrEmpty(windowFilter.Text) && !String.IsNullOrEmpty(windowTitle.Text) && !String.IsNullOrEmpty

(defaultFileName.Text) && !String.IsNullOrEmpty(targetFileName.Text))
{   //使用SaveFile Function
    SaveFile(windowFilter.Text, windowTitle.Text, defaultFileName.Text, targetFileName.Text);
}
else
{
    MessageBox.Show("請將所有TextBox填寫完畢");
}

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

https://ithelp.ithome.com.tw/upload/images/20180104/20091333XiqAn5SPra.jpg

https://ithelp.ithome.com.tw/upload/images/20180104/20091333gbusDdv89m.jpg

參考資料:
Microsoft SaveFileDialog 類別
https://msdn.microsoft.com/zh-tw/library/system.windows.forms.savefiledialog(v=vs.110).aspx

Microsoft FileInfo 類別
https://msdn.microsoft.com/zh-tw/library/system.io.fileinfo(v=vs.110).aspx


上一篇
[2018鐵人賽Day15]C#初學攻略心法-小技巧,指定檔案到指定位置
下一篇
[2018鐵人賽Day17]C#初學攻略心法-黑暗魔書(Access)的精神連結
系列文
轉職初新者系列-C#初學攻略心法30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0

請問在最後建立MP3檔案是成功的嗎
我在最後一步按下存檔後出現了
System.NotSupportedException: '不支援指定的路徑格式。'

Old Siao iT邦研究生 1 級 ‧ 2019-12-09 18:00:12 檢舉

可否提供更詳細的資訊呢?
像是Step5第一張圖

我要留言

立即登入留言