转自:http://www.cnblogs.com/scottckt/archive/2008/01/26/1054382.html
OpenFileDialog、SaveFileDialog常用屬性、對話框用法及得到系統特殊文件夾路徑
.Net Framework中 包含的對話框類
1、CommonDiaolog
FileDialog |
OpenFileDialog |
用戶選擇和瀏覽要打開的文件,可以配置只選擇一個或多個文件 |
SaveFileDialog |
為要保存的文件指定文件名和路徑。 | |
FolerBrowserDialog |
選擇和創建目錄。.Net 2.0中的新類。 | |
ColorDialog |
用於選擇顏色 | |
FontDialog |
所有已安裝的Windows字體、樣式和字號,以及各字體的預覽效果,以便選擇字體。 | |
PageSetupDialog |
配置頁面的邊距 | |
PrintDialog |
用於選擇打印機,並設置打印選項 |
2、Form
PrintPreviewDialog |
在屏幕上進行打印預覽的一種方法。 |
3、CommonDialog類定義了下表方法和事件
公共實例方法和事件 |
|
ShowDialog() |
顯示一個通用對話框 |
Reset() |
每個派生的對話框都執行Reset()方法,把對話框類的所有屬性都設置為它們的默認值 |
HelpRequest |
當用戶單擊通用對話框的Help按鈕時,就引發該事件 |
CommonDialog是對話框類的基類,所以所有對話框類的使用方式都是類似的。ShowDialog()調用受保護的RunDialog()實例方法來顯示對話框,並利用用戶與對話框交互操作的信息,最終返回一個DialogResult實例。另一方面,Reset()把對話框類的屬性設置為它們的默認值。
OpenFileDialog常用屬性
Title |
標題 |
InitialDirectory |
默認打開位置,即初始目錄 |
Filter |
設置過慮字符 |
FilterIndex |
屬性指定列表框中默認的選項。其值基於1。 |
ValidateNames |
檢查用戶輸入的文件名是否有效。無效的文件句包含""、/或:等元效字符 |
CheckFileExist |
驗證文件有效性,默認為True |
CheckPathExists |
驗證路徑有效性,默認為True |
ShowHelp |
顯示幫助信息 |
Multiselect |
選擇多個文件 |
默認情況下:對話框將打開用戶上一次運行應用程序時打開的目錄。它調用的Windows通用對話框使用注冊表來定位上一次打開的文件名
Filter設置文件過慮器
即定義用戶可以選擇打開的文件類型。簡單的過慮器字符串如下:
Text Documents (*.txt)|*.txt|All Files|*.*
過慮器可以分為多個部分,每個部分用一個堅杠字符(|)分隔開。各部分的個數總數是偶數。第一個字符串定義要在列表框中顯示的文本,第二個字符用於指定要在對話框中顯示的文件的擴展名。如:Text Documents (*.txt)|*.txt,分為用“Text Documents (*.txt)”和“*.txt”兩兩部分,部用 “|”分隔。Filter屬性設置過慮字符串。過慮器前后不允許有空白。
ValidateNames有效性檢查:
檢查用戶輸入的文件名是否有效。當為True時,可以用CheckFileExist和CheckPathExists進行其它有效性驗證。
ShowHelp幫助:
OpenFileDialog提供了一個幫助按鈕,在默認情況下,該按鈕是不可見的。ShowHelp為True時才會顯示。也可以給HelpRequest添加一個事件處理程序,用到給用戶顯示幫助信息。
DialogResult結果:
OpenFileDialog類的ShowDialog()方法返回一個DialogResult枚舉。該枚舉定義了成員Abort、Cancel、Ignore、No、None、Ok、Retry和Yes。
None是默認值,只要用戶沒有關閉對話框一,就設置這個值。
SaveFileDialog只有DialogResult.ok和DialogResult.Cancel
Multiselect選擇多個文件:
當Multiselect屬性設置為True時,用戶可以選擇多個文件,FileNames數組中的第一個字符串是最后一個選中的文件。FileNme屬性總是包含最后一個選中的文件名。
這些屬性在界面中對應如下圖:
SaveFileDialog常用屬性
AddExtension |
是否把擴展名自動添加到用戶輸入的文件名上。默認為True,如果用戶已經輸入了一個文件擴展名,就不會添加其它擴展名了。 |
CheckFileExist |
驗證文件有效性,默認為False |
CheckPathExists |
驗證路徑有效性,默認為True |
CreatePrompt |
詢問用記是否分創建一個新文件 |
OverwritePrompt |
是否覆蓋已有文件。 |
如果用戶沒有輸入擴展名,就使用DefaultExt屬性設置的文件擴展名。如果這個屬性為空,就使用當前選擇的Filter中定義的文件擴展名。如果設置了Filter和DefaultExt,則不論是什麼,都使用DefaultExt。
對話框用法:
1)創建一個對放框類的新實例
2)設置選項
3)調用ShowDialog()方法,顯示對話框,等待用戶響應
4)設置響應后的動作
如下面代碼:
OpenFileDialog dlg = new OpenFileDialog();
//2、設置選項
dlg.Title = "Sample";
dlg.ShowReadOnly = true;
//3、顯示對話框
if (dlg.ShowDialog()==DialogResult.OK)
{
//4、設置響應后的動作
string fileName = dlg.FileName;
}
得到系統特殊文件夾路徑:
獲取特定的系統文件夾,可以使用System.Environment類的靜態方法GetFolderPath()。
Environment.SpecialFolder中定義了系統目錄的路徑
string dir = Environment.GetFolderPath(Environment.SpecialFolder.Templates);
//获取文件名
Path.GetFileName(OpenFileDialog.FileName)
//获取文件路径
Path.GetDirectoryName(OpenFileDialog.FileName)
//获取文件扩展名
Path.GetExtension(OpenFileDialog.FileName)