c#—OpenFileDialog的一些屬性
轉自https://www.cnblogs.com/dujinyang/p/4788028.html
String.IndexOf
String.IndexOf 方法 (Char, Int32, Int32)
報告指定字元在此例項中的第一個匹配項的索引。搜尋從指定字元位置開始,並檢查指定數量的字元位置。
String.IndexOf(value, startIndex, count)
引數
value:要查詢的 Unicode 字元。
startIndex:搜尋起始位置。
count:要檢查的字元位置數。
返回值(Int32):
如果找到該字元,則為 value 的索引位置;否則如果未找到,則為 -1。
String.LastIndexOf
名稱 | 說明 | |
String.LastIndexOf (Char) | 報告指定 Unicode 字元在此例項中的最後一個匹配項的索引位置。 | |
String.LastIndexOf (String) | 報告指定的 String 在此例項內的最後一個匹配項的索引位置。 | |
String.LastIndexOf (Char, Int32) | 報告指定 Unicode 字元在此例項中的最後一個匹配項的索引位置。該搜尋從指定字元位置開始。 | |
String.LastIndexOf (String, Int32) | 報告指定的 String 在此例項內的最後一個匹配項的索引位置。該搜尋從指定字元位置開始。 | |
String.LastIndexOf (String, StringComparison) | 報告指定字串在當前 String 物件中最後一個匹配項的索引。一個引數指定要用於指定字串的搜尋型別。 | |
String.LastIndexOf (Char, Int32, Int32) | 報告指定的 Unicode 字元在此例項內的子字串中的最後一個匹配項的索引位置。搜尋從指定字元位置開始,並檢查指定數量的字元位置。 | |
String.LastIndexOf (String, Int32, Int32) | 報告指定的 String 在此例項內的最後一個匹配項的索引位置。搜尋從指定字元位置開始,並檢查指定數量的字元位置。 | |
String.LastIndexOf (String, Int32, StringComparison) |
|
|
String.LastIndexOf (String, Int32, Int32, StringComparison) |
|
示例:
string str = "深圳市盈基實業有限公司國際通鄧事文*深圳市盈基實業有限公司國際通鄧事文";
Label1.Text = str.LastIndexOf("鄧文").ToString();//返回-1
Label1.Text = str.LastIndexOf("鄧").ToString();//返回32
Label1.Text = str.LastIndexOf("鄧",8).ToString();//返回-1
Label1.Text = str.LastIndexOf("鄧",20).ToString();//返回14
Label1.Text = str.LastIndexOf("鄧",33).ToString();//返回32
說明:在指定的範圍內查詢字元,這個範圍是上面的輸入的引數,理解為,從索引0開始到指定的數值位置範圍內查詢最後一個匹配的的字串的位置。示例中,0-8中沒有“鄧”字,所以返回-1,0-20範圍中,有一個“鄧”字在索引14位置上,0-33範圍中有兩個“鄧”字,因為LastIndexOf是返回最後一個匹配項索引位置,所以返32,而不是14。
String.Substring
名稱 | 說明 |
String.Substring (Int32) | 從此例項檢索子字串。子字串從指定的字元位置開始。 |
String.Substring (Int32, Int32) | 從此例項檢索子字串。子字串從指定的字元位置開始且具有指定的長度。 |
示例:
string str = "深圳市盈基實業有限公司國際通鄧事文*深圳市盈基實業有限公司國際通鄧事文";
Label1.Text = str.Substring(11);//返回 “國際通鄧事文*深圳市盈基實業有限公司國際通鄧事文”
Label1.Text = str.Substring(11,7);//返回 “國際通鄧事文*”
Label1.Text = str.Substring(str.Length-3,3); // 返回鄧事文,即截倒數3位字元
總結:
IndexOf、LastIndexOf都是返回一個位置,是個整數值;找不到都返回-1;
IndexOf是從左向右查,LastIndexOf是從右向左查,不管是IndexOf還是LastIndexOf,索引序列都是從左到右的(起始值是0)
Substring是字串擷取,返回值是一個擷取後的字串。
OpenFileDialog控制元件的基本屬性
- InitialDirectory:對話方塊的初始目錄
- Filter: 獲取或設定當前檔名篩選器字串,例如,"文字檔案(*.txt)|*.txt|所有檔案(*.*)||*.*"
- FilterIndex 在對話方塊中選擇的檔案篩選器的索引,如果選第一項就設為1
- RestoreDirectory 控制對話方塊在關閉之前是否恢復當前目錄
- FileName:第一個在對話方塊中顯示的檔案或最後一個選取的檔案
- Title 將顯示在對話方塊標題欄中的字元
- AddExtension 是否自動新增預設副檔名
- CheckPathExists 在對話方塊返回之前,檢查指定路徑是否存在
- DefaultExt 預設副檔名
- DereferenceLinks 在從對話方塊返回前是否取消引用快捷方式
- ShowHelp 啟用"幫助"按鈕
-
-
C# 獲取檔名及副檔名
string aFirstName = aFile.Substring(aFile.LastIndexOf("\\") + 1, (aFile.LastIndexOf(".") - aFile.LastIndexOf("\\") - 1)); //檔名
string aLastName = aFile.Substring(aFile.LastIndexOf(".") + 1, (aFile.Length - aFile.LastIndexOf(".") - 1)); //副檔名string strFilePaht="檔案路徑";
Path.GetFileNameWithoutExtension(strFilePath);這個就是獲取檔名的還有的就是用Substring擷取
strFilePaht.Substring(path.LastIndexOf("\\") + 1, path.Length - 1 - path.LastIndexOf("\\"));
strFilePaht.Substring(path.LastIndexOf("."), path.Length - path.LastIndexOf("."));或者用openFileDialog1.SafeFileName
這樣就能取到該檔案的所在目錄路徑
string path1 = System.IO.Path.GetDirectoryName(openFileDialog1.FileName) + @"\";string path = Path.GetFileName("C:\My Document\path\image.jpg"); //只獲取檔名image.jpg
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
string fullPath = @"\WebSite1\Default.aspx";string filename = System.IO.Path.GetFileName(fullPath);//檔名 “Default.aspx”
string extension = System.IO.Path.GetExtension(fullPath);//副檔名 “.aspx”
string fileNameWithoutExtension = System.IO.Path.GetFileNameWithoutExtension(fullPath);// 沒有副檔名的檔名 “Default”/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
System.IO.Path.GetFileNam(filePath) //返回帶副檔名的檔名
System.IO.Path.GetFileNameWithoutExtension(filePath) //返回不帶副檔名的檔名
System.IO.Path.GetDirectoryName(filePath) //返回檔案所在目錄/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//獲取當前程序的完整路徑,包含檔名(程序名)。
string str = this.GetType().Assembly.Location;
result: X:\xxx\xxx\xxx.exe (.exe檔案所在的目錄+.exe檔名)//獲取新的 Process 元件並將其與當前活動的程序關聯的主模組的完整路徑,包含檔名(程序名)。
string str = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName;
result: X:\xxx\xxx\xxx.exe (.exe檔案所在的目錄+.exe檔名)//獲取和設定當前目錄(即該程序從中啟動的目錄)的完全限定路徑。
string str = System.Environment.CurrentDirectory;
result: X:\xxx\xxx (.exe檔案所在的目錄)//獲取當前 Thread 的當前應用程式域的基目錄,它由程式集衝突解決程式用來探測程式集。
string str = System.AppDomain.CurrentDomain.BaseDirectory;
result: X:\xxx\xxx\ (.exe檔案所在的目錄+"\")//獲取和設定包含該應用程式的目錄的名稱。
string str = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
result: X:\xxx\xxx\ (.exe檔案所在的目錄+"\")//獲取啟動了應用程式的可執行檔案的路徑,不包括可執行檔案的名稱。
string str = System.Windows.Forms.Application.StartupPath;
result: X:\xxx\xxx (.exe檔案所在的目錄)//獲取啟動了應用程式的可執行檔案的路徑,包括可執行檔案的名稱。
string str = System.Windows.Forms.Application.ExecutablePath;
result: X:\xxx\xxx\xxx.exe (.exe檔案所在的目錄+.exe檔名)//獲取應用程式的當前工作目錄(不可靠)。
string str = System.IO.Directory.GetCurrentDirectory();
result: X:\xxx\xxx (.exe檔案所在的目錄)