2017-02-23 62 views
2

您好,我創建了一個WPF應用程序,它顯示文件資源管理器中datagrid中的文件列表,然後用戶可以通過選擇datagrid中的行來選擇文件。點擊一個按鈕後,用戶可以獲取文件的路徑(它們存儲的文件夾)。我默認的文件路徑爲H:\ TEMP \目錄\樣本\項目,我創建了一個對象解析對象中的路徑以提取其中的特定文件夾

var Form = new Example.Form() 
       { 
        Path = Path.GetFileNameWithoutExtension(fldDlg.SelectedPath), 
        Title = string.Empty 
       }; 

       formlist.Add(Form); 

我想設置項目的根文件夾,因爲它有我想要顯示的文件,但也有Projects文件夾中包含相同類型的其他文件的子文件夾。所以我想在解析Form對象的路徑,以便它是建立在這樣的方式:

File1.rpt

Subfolder1 \ subfolder2 \ file2.rpt

如果項目已經被設置爲根文件夾。

所以我想用下面的問題有所幫助:

  1. 設置項目的根文件夾
  2. 和對象解析路徑,以便它是建立在我上面
  3. 所提到的格式在網格中的路徑將是像H:\ Temp \ Directory \ Sample \ Projects \ File1.rpt或H:\ Temp \ Directory \ Sample \ Projects \ Subfolder1 \ subfolder2 \ file2.rpt類似的東西,所以我想抓住所有後來項目。

回答

0

我想補充的根路徑自己。 (這種方式我不粘連,1個基本路徑)

但如果你真的願意,你可以使用Environment.CurrentDirectory

我會刪除根文件夾名稱從路徑:

是這樣的:

string path =  @"H:\Temp\Directory\Sample\Projects\Subfolder1\Subfolder2\file2.rpt"; 
string rootPath = @"H:\Temp\Directory\Sample\Projects\"; 

// check check, double check... 
if(path.StartsWith(rootPath)) 
{ 
    subPath = path.Substring(rootPath.Length); 
} 

給出:

Subfolder1\Subfolder2\file2.rpt 
+0

所以,如果我想取報告文件說file1.rpt這是直接在隨後的項目文件夾我要硬編碼到字符串路徑呢? – user0594

+0

我不會建議硬編碼字符串。你應該把這些基路徑放在一個配置文件中。上面的例子只是一個例子,而不是一個解決方案。 –

相關問題