2017-02-23 63 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

我不会建议硬编码字符串。你应该把这些基路径放在一个配置文件中。上面的例子只是一个例子,而不是一个解决方案。 –

相关问题